题解 | #按之字形顺序打印二叉树#

按之字形顺序打印二叉树

https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0

层次遍历,只需考虑每一层的结果出来之后,是从左到右的顺序添加,还是从右到左的顺序添加。可以用一个Flag标志,也可以根据结果集的长度的奇偶性标志。
class Solution:
    def Print(self, pRoot: TreeNode) -> List[List[int]]:
        queue = []
        if not pRoot:
            return []
        queue.append(pRoot)
        res = []
        while queue:
            temp = [] # temp用于存储该层的结果
            for _ in range(len(queue)):
                c = queue.pop(0)
                temp.append(c.val)
                if c.left:
                    queue.append(c.left)
                if c.right:
                    queue.append(c.right)
                       # 根据结果集的长度决定,顺序添加还是逆序添加。长度为0的时候顺序添加,为1的时候逆序添加。故如下。
            res.append(temp[::-1] if len(res) % 2 else temp)
        return res
         


全部评论

相关推荐

门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 13:05
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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