二叉树的层序遍历
Binary Tree Level Order Traversal
本机进度仅保存在当前浏览器
题目描述
给你二叉树的根节点 root,返回其节点值的层序遍历结果(逐层地,从左到右访问所有节点)。
示例:[3, 9, 20, null, null, 15, 7] 输出 [[3], [9, 20], [15, 7]]。
解题思路
- BFS 模板题:队列维护"当前层"节点,每轮记录队列长度(即本层节点数),逐个出队并把孩子入队。
- 关键点是"按层切分":处理前先固定 len(queue),避免新入队的孩子与本层混在一起。
- 变式(之字形遍历、自底向上)都只需在此骨架上加层号奇偶翻转或反转结果列表。
参考实现
查看参考实现Python · 建议先自行作答
from collections import deque
def levelOrder(root):
if not root:
return []
res = []
queue = deque([root])
while queue:
level = []
# 先固定本层节点数,再逐个出队
for _ in range(len(queue)):
node = queue.popleft()
level.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
res.append(level)
return res