Python练习——二叉树的层序遍历

Python练习——二叉树的层序遍历,第1张

概述一.题目描述:给你一个二叉树,请你返回其按层序遍历得到的节点值。(即逐层地,从左到右访问所有节点)。二.输出示例:示例:二叉树:[3,9,20,null,null,15,7]3/\920/\157返回其层序遍历结果:[[3],[9,20],[15,7]]三.解题思路:按照深度优先的处理顺序,会先 一.题目描述:

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。

二.输出示例:

示例:
二叉树:[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练习——二叉树的层序遍历所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1185017.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存