大家好,又见面了,我是你们的朋友全栈君。
层序遍历,每次层的输出是是一个一维数组,整个二叉树的输出结果是二维数组
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
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143428.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...