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
    
  • 相关阅读:
    smarty的学习
    用接口实现封装的一个mysqli工具类
    centos7/8安装java和mysql
    Mysql 8.0 忘记密码报错1045办法,skip-grant-tables不管用
    卸载vivo手机自带的应用程序
    DevOps的学习(一)
    quartzy的spring注入问题
    html加载执行的顺序
    关于时间Date转换成long类型的方法(时间戳的转换)
    系统中出现乱码
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14092055.html
Copyright © 2011-2022 走看看