码迷,mamicode.com
首页 > 其他好文 > 详细

lc 145. Binary Tree Postorder Traversal

时间:2018-09-11 12:22:26      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:递归   技术分享   init   problems   leetcode   roo   col   .com   traversal   

https://leetcode.com/problems/binary-tree-postorder-traversal/description/

不用递归的方式进行树的后序遍历

思路就是当前的根我们可以确定是最后的,我们就放入结果数组。然后他的左儿子不一定什么时候放,视右儿子数量决定,就把左儿子放入等待数组,以上用一个小函数去执行。

循环终止条件就是等待数组为空。

以上完成了一个倒置的后序遍历,把结果数组倒置回来就ok。

技术分享图片
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

class Solution:
    def __init__(self):
        self.ans=[]
    def postorderTraversal(self, root):
        """
        :type root: TreeNode
        :rtype: List[int]
        """
        todo=[root]
        while len(todo)>0:
            if todo[-1]==None:
                todo.pop()
                continue
            self.ans.append(todo[-1].val)
            node=todo.pop()
            todo.append(node.left)
            todo.append(node.right)
        return list(reversed(self.ans))
View Code

 

lc 145. Binary Tree Postorder Traversal

标签:递归   技术分享   init   problems   leetcode   roo   col   .com   traversal   

原文地址:https://www.cnblogs.com/waldenlake/p/9626649.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!