题解 | #把二叉树打印成多行#

把二叉树打印成多行

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
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-29 12:19
点赞 评论 收藏
分享
jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务