LeetCode 102. 二叉树的层序遍历
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
Code
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if root is None:
return []
from collections import deque
#BFS
layer = deque()
layer.append(root)
res = []
while layer:
cur_layer = [] #记录当前层的节点
for _ in range(0,len(layer),1): # 遍历某一层的节点
node = layer.popleft() # 要处理的节点`
cur_layer.append(node.val)
if node.left: #先左后右,
layer.append(node.left)
if node.right:
layer.append(node.right)
res.append(cur_layer)
return res
想法
1.layer表示层,队列后进后出,先进先出。
2. layer.append(root) 导入示例。