给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
例如:给定二叉树: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回其层次遍历结果:
[
[3],
[9,20],
[15,7]
]
二叉树的层序遍历,其中每一层都是从左往右输出。使用数组存放每一层访问后根节点的子树,直到当前数组为空。
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if root== None: return []
queue = [root]
res = []
while queue:
cur = []
nextLayer = []
# 分别获取左右子树的根节点的val作为当前层结果
for node in queue:
cur.append(node.val)
if node.left:
nextLayer.append(node.left)
if node.right:
nextLayer.append(node.right)
res.append(cur)
queue = nextLayer
return res