zoukankan      html  css  js  c++  java
  • [Leetcode]145. Binary Tree Postorder Traversal

    这是Leetcode第145题,求二叉树的后序遍历。后序遍历相对于先序遍历以及中序遍历,非递归求解方式更加复杂。这里,我使用的方法是双压栈法。
    具体代码如下:

    
    class Solution:
        def postorderTraversal(self, root):
            """
            :type root: TreeNode
            :rtype: List[int]
            """
            #后续遍历的非递归解法,双压栈版
            res=[]
            stack=[]
            if not root:
                return res
            stack.append(root)
            stack.append(root)
            while stack:
                p=stack.pop()
                if stack and p==stack[-1]:
                    if p.right:
                        stack.append(p.right)
                        stack.append(p.right)
                    if p.left:
                        stack.append(p.left)
                        stack.append(p.left)
                else:
                    res.append(p.val)
            return res
    
  • 相关阅读:
    排序与查找
    gdb
    编码风格
    数组
    结构体
    循环语句
    深入理解函数
    分支语句
    简单函数
    解决国内NPM安装依赖速度慢问题
  • 原文地址:https://www.cnblogs.com/hellojamest/p/11603043.html
Copyright © 2011-2022 走看看