LeetCode 102. 二叉树的层序遍历

102. 二叉树的层序遍历

解题思路

层序遍历二叉树,使用队列来实现。首先将根节点加入队列,然后不断从队列中取出节点,并将其左右子节点加入队列,直到队列为空为止。在这个过程中,我们可以记录每一层的节点值,最终返回一个包含每一层节点值的列表。

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Solution {

public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> ans = new ArrayList<>();
ArrayDeque<TreeNode> queue = new ArrayDeque<>();

if (root == null) {
return ans;
}

queue.offer(root);
while(queue.size() != 0) {
int size = queue.size();
List<Integer> row = new ArrayList<>();
for(int i = 0; i < size; i ++) {
TreeNode node = queue.poll();
row.add(node.val);
if(node.left != null) {
queue.offer(node.left);
}
if(node.right != null) {
queue.offer(node.right);
}
}
ans.add(row);
}
return ans;
}
}

LeetCode 102. 二叉树的层序遍历
https://sowink.cn/2026/02/08/LeetCode-102-二叉树的层序遍历/
作者
Xurx
发布于
2026年2月8日
许可协议