迭代:二叉树三序遍历一气呵成

实现二叉树先序,中序和后序遍历

http://www.nowcoder.com/questionTerminal/a9fec6c46a684ad5a3abd4e365a9d362

巧用栈中数据类型判断,以此迭代,一气呵成

# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

#
# 
# @param root TreeNode类 the root of binary tree
# @return int整型二维数组
#
class Solution:
    def threeOrders(self , root ):
        stack1, stack2, stack3 = [root], [root], [root]
        res1, res2, res3 = [], [], []
        while stack1:
            i, j, k = stack1.pop(), stack2.pop(), stack3.pop()
            if isinstance(i, TreeNode):
                stack1.extend([i.right, i.left, i.val])
            if isinstance(j, TreeNode):
                stack2.extend([j.right, j.val, j.left])
            if isinstance(k, TreeNode):
                stack3.extend([k.val, k.right, k.left])
            if isinstance(i, int):
                res1.append(i)
            if isinstance(j, int):
                res2.append(j)
            if isinstance(k, int):
                res3.append(k)
        return [res1, res2, res3]
全部评论

相关推荐

xdm怎么说 要被拷打了 担心是KPI
丹田:面就完了,就当日薪四位数的大佬免费给给你面试。
点赞 评论 收藏
分享
06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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