给定以下树:
我需要按照从左到右的顺序返回树的层序遍历:
因此,上面的示例将输出一个列表的列表:
我编写了以下代码,思路是递归地将节点值及其深度存储在队列中,然后迭代队列元组并将它们放入中间列表 O,如果没有相同深度的更多节点,则将 O 添加到输出并清空 O。但是我的代码超时了,有什么帮助吗?[ [3], [9,20], [15,7] ]
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