把二叉树打印成多行,也是基于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