题解 | #把二叉树打印成多行#
把二叉树打印成多行
http://www.nowcoder.com/practice/445c44d982d04483b04a54f298796288
二叉树的每一个节点包含左右子节点,分别取栈、层、最终列表三个空内容。
每次需要清空层的内容,在放入父节点后,腾出位置放左右节点的输入
class Solution: # 返回二维列表[[1,2],[4,5]] def Print(self, pRoot): if not pRoot: return[] stack = [pRoot] tmp =[] res =[] while stack: tmp=[] //这里我踩坑了,没有清空,导致后面每一层都输出了一样的结果 for i in range(len(stack)): node = stack[0] tmp.append(node.val)//append它节点的值 stack = stack[1:]//做减法 # res.append(tmp) if node.left ://左节点 stack.append(node.left) # res.append(tmp) if node.right://右节点 stack.append(node.right) # tmp.append(stack) res.append(tmp)//汇总 return res # write code here