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
    
  • 相关阅读:
    第6章 函数 习题
    2. VS使用---HelloWorld
    [计蒜客]小 B 的题目
    [计蒜客] n 子棋
    [博弈]Euclid's Game
    [博弈]A Funny Game
    [博弈]Being a Good Boy in Spring Festival
    [组合数学]Magic 12 Months(坑)
    [PTA]L2-031 深入虎穴 (25 分)
    [天梯赛]L2-029 特立独行的幸福
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14092055.html
Copyright © 2011-2022 走看看