题解 | #求二叉树的层序遍历#
求二叉树的层序遍历
https://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param root TreeNode类
# @return int整型二维数组
#
class Solution:
def levelOrder(self , root: TreeNode) -> List[List[int]]:
if not root:
return []
lay = [[root]] # 按层存入
res = [] # 存放结果
while lay:
now_lay = lay.pop(0) # 当前遍历的层
now_lay_res = []
next_lay = [] # 下一层的节点
for tmp in now_lay:
if tmp:
now_lay_res.append(tmp.val)
if tmp.left:
next_lay.append(tmp.left)
if tmp.right:
next_lay.append(tmp.right)
if next_lay: # 如果有元素,存入lay
lay.append(next_lay)
res.append(now_lay_res)
return res
查看7道真题和解析
