leetcode-145-Binary Tree Postorder Traversal

本文介绍栈(stack)在数据结构中的意义及价值,并通过实例展示如何使用栈进行二叉树的后序遍历。具体实现上,文章提供了一个Python类`Solution`,该类中的`postorderTraversal`方法可以完成对二叉树节点值的后序遍历。
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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值