我应该返回从左到右遍历树的级别顺序: 因此,上面的示例将输出一个列表列表:
[ [3], [9,20], [15,7] ]
我写了下面的代码,idea是将节点值及其深度递归地存储在一个队列中,然后迭代队列元组,如果没有更多具有相同深度的节点,则将其放在中间列表O中,向输出追加O,并清空O等等。但是我的代码有什么帮助吗?你知道吗
import queue
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
def helper(root,res,level):
if not root:
return res
l=level+1
res.put((root.val,level))
helper(root.left,res,l)
helper(root.right,res,l)
res=queue.Queue()
helper(root,res,0)
d=1
output=[]
node,depth=res.get()
output.append([node])
while res:
o=[]
node,depth=res.get()
while d ==depth:
o.append(node)
node,depth=res.get()
else:
d+=1
output.append(o)
return output
下面是我的代码,用于宽度优先搜索(BFS)迭代实现,每个级别的节点在最终输出的单个列表下:
测试:
相关问题 更多 >
编程相关推荐