把二叉树打印成多行,也是基于bfs的例子
同理bfs操作,只是对树进行遍历时,多记录level信息,方便后续整理。
Next: 需要往优化思考,单纯的解决已不再适合
class Solution:
def Print(self , pRoot: TreeNode) -> List[List[int]]:
# write code here
if not pRoot: return None
i = 0
nodes = [[1, pRoot.val, pRoot]]
while i < len(nodes):
level = nodes[i][0]
node = nodes[i][2]
if node.left:
nodes.append([level+1, node.left.val, node.left])
if node.right:
nodes.append([level+1, node.right.val, node.right])
i+=1
res = []
for n in nodes:
if n[0] == len(res):
res[-1].append(n[1])
else:
res.append([n[1]])
return res
查看10道真题和解析