博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lc 145. Binary Tree Postorder Traversal
阅读量:5071 次
发布时间:2019-06-12

本文共 861 字,大约阅读时间需要 2 分钟。

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

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

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

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

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

class TreeNode:    def __init__(self, x):        self.val = x        self.left = None        self.right = Noneclass 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

 

转载于:https://www.cnblogs.com/waldenlake/p/9626649.html

你可能感兴趣的文章