给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
二.输出示例:示例:
二叉树:[3,9,20,null,null,15,7]
3 / 20 / \ 15 7
返回其层序遍历结果:
[[3],[9,20],[15,7]]
三.解题思路:按照深度优先的处理顺序,会先访问节点 3,再访问节点 9。
之后是第二列的 20,最后是第三列的 15,7。
每次递归的时候都需要带一个 index
(表示当前的层数),如果当前行对应的 List 不存在,就加入一个空 List 进去。
def levelOrder(root): if not root: return [] res = [] def dfs(index,r): if len(res)<index: res.append([]) res[index-1].append(r.val) if r.left: dfs(index+1,r.left) if r.right: dfs(index+1,r.right) dfs(1,root) return resclass Node: def __init__(self, data=None): self.val = data # 节点值指针 self.right = None # 右节点指针 self.left = None # 左节点指针if __name__=='__main__': tree = Node(3) tree.left = Node(9) tree.right = Node(20) tree.right.left = Node(15) tree.right.right=Node(7) y=levelOrder(tree) print(y)
总结 以上是内存溢出为你收集整理的Python练习——二叉树的层序遍历全部内容,希望文章能够帮你解决Python练习——二叉树的层序遍历所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)