stack 栈的意义价值: 具有时间性,先进后出。 所以具有时间关联顺序的元素可以通过这个时间。 比如递归的后序遍历,先序遍历,
        二叉树的按层次打印。  根据需求不同,在stack中暂时储存的元素单元也不同,元素的先后顺序也不同。

应用:对顺序有要求的数据。二叉树的处理。

Given a binary tree, return the postorder traversal of its nodes' values.
Example:

Input: [1,null,2,3]
1

\
 2
/

3

Output: [3,2,1]

class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

class Solution:
    def postorderTraversal(self, root):
        """
        :type root: TreeNode
        :rtype: List[int]
        """
        if not root:
            return []
        stack=list()
        ans=list()
        stack.append(root)
        while stack:
            node_cur=stack.pop()
            if node_cur.val:
                ans.append(node_cur.val)
            if node_cur.left:
                stack.append(node_cur.left)
            if node_cur.right:
                stack.append(node_cur.right)
        return ans[::-1]

龙仔
12 声望4 粉丝