
层序遍历,每次层的输出是是一个一维数组,整个二叉树的输出结果是二维数组
BFS遍历,依托于队列结构,每次在根节点出栈的时候,将其值加在结果列表中,然后将他的左右孩子节点入队列。
层序遍历相对于BFS,需要知道每一层有多少个节点。
因此,我们需要稍微修改一下代码,在每一层遍历开始前,先记录队列中的结点数量 nn(也就是这一层的结点数量),然后一口气处理完这一层的 n 个结点。参考
class Solution:
def levelOrder(self, root: TreeNode):
r = []
if not root:return r
quee = [root]
while quee:
temp = []
k = len(quee)# 当前层右多少个节点
for i in range(k):
root = quee.pop(0)
temp.append(root.val)
if root.left:quee.append(root.left)
if root.right:quee.append(root.right)
r.append(temp)
return r
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/114676.html