leetcode-二叉树的后序遍历

145. 二叉树的后序遍历

迭代法

# 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: Optional[TreeNode]) -> List[int]:
        res = []
        def helper(root, res):
            if root:
                helper(root.left, res)
                helper(root.right, res)
                res.append(root.val)
        helper(root, res)
        return res

迭代法

先序遍历是中左右,后续遍历是左右中,那么我们只需要调整一下先序遍历的代码顺序,就变成中右左的遍历顺序,然后在反转res数组,输出的结果顺序就是左右中了

# 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: Optional[TreeNode]) -> List[int]:
        if not root:
            return []
        stack, res = [root], []
        while stack:
            node = stack.pop()
            res.append(node.val)
            if node.left:
                stack.append(node.left)
            if node.right:
                stack.append(node.right)
        return res[::-1]

最近更新

  1. TCP协议是安全的吗?

    2024-01-22 19:04:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-22 19:04:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-22 19:04:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-22 19:04:05       18 阅读

热门阅读

  1. 数据结构 | 数组

    2024-01-22 19:04:05       38 阅读
  2. 大模型镜像打包实战:CodeGeeX2为例

    2024-01-22 19:04:05       39 阅读
  3. ansible-设置互信

    2024-01-22 19:04:05       26 阅读
  4. web搭建和nfs

    2024-01-22 19:04:05       37 阅读
  5. 前端上传图片至OSS

    2024-01-22 19:04:05       35 阅读
  6. 网络安全事件分级指南

    2024-01-22 19:04:05       34 阅读