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

把二叉树打印成多行

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

相关推荐

想玩飞盘的菠萝蜜在春...:上交✌🏻也拒?
点赞 评论 收藏
分享
LuvSran:是人我吃。老师就是学校呆久了,就业方面啥都不懂,还自以为是为了我们就业好。我学校就一破双非,计科入行率10%都没有,某老师还天天点名,说是出勤率抬头率前排率高了,华为什么的大厂就会来,我们就是不好好上课才没有厂来招。太搞笑了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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