zoukankan      html  css  js  c++  java
  • leetcode_145. 二叉树的后序遍历

    给定一个二叉树,返回它的 后序 遍历。
    
    示例:
    
    输入: [1,null,2,3]  
       1
        
         2
        /
       3 
    
    输出: [3,2,1]
    进阶: 递归算法很简单,你可以通过迭代算法完成吗?
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    
    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def postorderTraversal(self, root: TreeNode) -> List[int]:
            if not root:return []
            return self.postorderTraversal(root.left)+self.postorderTraversal(root.right)+[root.val]
    
    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def postorderTraversal(self, root: TreeNode) -> List[int]:
            def postOrder(root:TreeNode)->None:
                if not root :return
                postOrder(root.left)
                postOrder(root.right)
                ls.append(root.val)
    
    
            ls=[]
            postOrder(root)
            return ls
    
    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def postorderTraversal(self, root: TreeNode) -> List[int]:
            if not root:
                return []
            ls=[]
            stack=[]
            out=[]
            cur=root
            while stack or cur:
                if cur:
                    stack.append(cur)
                    out.append(cur)
                    cur=cur.right
                else:
                    cur=stack.pop()
                    cur=cur.left
            while(out):
                t=out.pop()
                ls.append(t.val)
            return ls
    
  • 相关阅读:
    线程池参数详解
    线程池各个参数详解以及如何自定义线程池
    fastdfs 安装
    SQL 执行顺序
    《SQL 进阶教程》 查找局部不一致的数据
    redis 高性能的原因
    一致性hash
    环境部署数据库报错
    redis 常用命令
    redis 高级学习和应用场景
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14092055.html
Copyright © 2011-2022 走看看