lc 145. Binary Tree Postorder Traversal

Posted waldenlake

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lc 145. Binary Tree Postorder 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的主要内容,如果未能解决你的问题,请参考以下文章

145. Binary Tree Postorder Traversal

LeetCode145. Binary Tree Postorder Traversal

leetcode 145. Binary Tree Postorder Traversal

145. Binary Tree Postorder Traversal

LeetCode145. Binary Tree Postorder Traversal 解题报告

145. Binary Tree Postorder Traversal