题目链接
英文链接:https://leetcode.com/problems/binary-tree-level-order-traversal/
中文链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/
题目详述
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
例如:
给定二叉树: [3,9,20,null,null,15,7]
,
1 | 3 |
返回其层次遍历结果:
1 | [ |
题目详解
二叉树的层次遍历比较简单,难点在于哪些结点在同一层,如何判断进入下一层。
- 新建一个队列来进行层次遍历。
- 每次进入外循环保存当前队列的大小,即这一层的节点数。
- 运用内循环用于处理,并让下一层的结点入队。
- 这样可以保证退出内循环时,下一层的结点已经全部入队。
- 一次处理一层结点,如此反复,直至队列为空。
1 | public class LeetCode_00102 { |
也可以用递归来做。每次把结点值加入链表前,先把表示这一层的链表加入到结果中。
1 | public class LeetCode_00102 { |