题目描述
解题思路
二叉树的层次遍历。借助一个队列,先将根结点放入队列,然后只要队列不空,就取出队头结点,然后放取出节点的左右孩子,以此循环。
以这个二叉树为例:
- 先放根节点 1。
- 取队列首节点 1,将左右孩子 2,3 依次入列。
- 取队列首节点 2,将左孩子 4 入队列。
- 取队列首节点 3,将左右孩子 5,6 依次入列。
- 取队列首节点 4,将右孩子 7入队列。
- 取队列首节点 5,无孩子入列。
- 取队列首节点 6, 将左孩子 8 入队列。
- 取队列首节点 7,无孩子入列。
-
代码实现
```java import java.util.ArrayList; import java.util.Queue; import java.util.LinkedList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public ArrayList