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

把二叉树打印成多行

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

相关推荐

焦虑中,不知道怎么办了。。。
西北上单:应该放俩项目合理一些 我是一个业务开发项目 一个AI项目和你这个写的亮点差不多
你的简历改到第几版了
点赞 评论 收藏
分享
牛客52811839...:实习要写出来业务和产出,你这写的像流水账没人看。项目经历也没有,换个极简简历试试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务