给定一个二叉树,返回它的 后序 遍历。

进阶: 递归算法很简单,你可以通过迭代算法完成吗?

解法一:递归

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = Noneclass Solution:def __init__(self):self.ans = []def postorderTraversal(self, root: TreeNode) -> List[int]:if not root:return self.ansself.postorderTraversal(root.left)self.postorderTraversal(root.right)self.ans.append(root.val)return self.ans

解法二:迭代

class Solution(object):def postorderTraversal(self, root):""":type root: TreeNode:rtype: List[int]"""if root is None:return []stack = [root, ]  # 栈,后进先出output = []  # 存储输出while stack:root = stack.pop()output.append(root.val)if root.left is not None:stack.append(root.left)if root.right is not None:stack.append(root.right)return output[::-1]  # 逆序输出

LeetCode —— 145. 二叉树的后序遍历【递归与迭代】(Python)相关推荐

  1. LeetCode 145. 二叉树的后序遍历(递归)(迭代)(颜色标记法)

    题目描述 给定一个二叉树,返回它的后序遍历 思路 详见链接 代码 递归 #class TreeNode: # def __init__(self,x): # self.val = x # self.l ...

  2. LeetCode 145 二叉树的后序遍历(非递归)

    题目: 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1\2/3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 解题思路: 1.使用一 ...

  3. LeetCode 145. 二叉树的后序遍历(后序遍历总结)

    文章目录 1. 题目信息 2. 解法 2.1 递归 2.2 循环,必须掌握 a. 单栈 b. 双栈解法 3. 前中后序总结 1. 题目信息 给定一个二叉树,返回它的 后序 遍历. 示例:输入: [1, ...

  4. [leetcode]145.二叉树的后序遍历

    给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1\2/3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 1.递归解法 class So ...

  5. Leetcode 145. 二叉树的后序遍历 (每日一题 20210930)

    给定一个二叉树,返回它的 后序 遍历.示例:输入: [1,null,2,3] 1\2/3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗?链接:https://leetcod ...

  6. LeetCode 145 ——二叉树的后序遍历

    1. 题目 2. 解答 2.1. 递归法 定义一个存放树中数据的向量 data,从根节点开始,如果节点不为空,那么 递归得到其左子树的数据向量 temp,将 temp 合并到 data 中去 递归得到 ...

  7. Leetcode题库 145.二叉树的后序遍历(递归 C实现)

    文章目录 思路 代码 思路 1.左右非空则先记录左右, 最后在记录自身 2.迭代法,需要建立struct TreeNode stack,记录父节点,知道怎么写就行,不一定非要按照它说的那样(没写过的, ...

  8. 二叉树后序遍历_LeetCode算法145. 二叉树的后序遍历

    leetcode LeetCode算法-145. 二叉树的后序遍历 145. 二叉树的后序遍历 题目 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / ...

  9. 刻意练习:LeetCode实战 -- 二叉树的后序遍历

    背景 今天,第二期基础算法(Leetcode)刻意练习训练营 的打卡任务是二叉树的中序遍历,由于二叉树的遍历方式通常来说有四种:前序遍历.中序遍历.后序遍历以及层次遍历,而LeetCode也有二叉树的 ...

最新文章

  1. iOS动画系列之九:实现点赞的动画及播放起伏指示器
  2. 爬虫基础(二)之http协议复习
  3. “技术崇拜”与“技术恐惧”都会阻碍 AI 创新,“技术节制”才是正道
  4. MATLAB利用串口接收数据,并实时显示图形
  5. CSS基础篇--强制性换行word-break与word-wrap的使用
  6. java lambda例子_Java lambda 表达式常用示例
  7. php 查看spl,PHP使用标准库spl实现的观察者模式示例
  8. spring整合web
  9. linux centeros下Redis的安装
  10. Angular6笔记之全局组件
  11. 操作系统--进程管理1--单个CPU情况
  12. 计算机财务管理中表格的应用,论Excel表在财务管理中的应用
  13. 如何在EDI系统中查询文件?
  14. hp probook fn_如何在HP ProBook(或兼容笔记本电脑)上安装Mac OS X Lion
  15. python colorbar刻度_python-如何添加Matplotlib Colorbar刻度
  16. 烟花背景的3D打字魔方相册(末尾附加下载地址)
  17. android killer 反编译工具,androidkiller反编译软件使用与踩坑并解决的过程
  18. 体会现实生活的两个月(上)
  19. P1413 坚果保龄球洛谷c++题解
  20. 电商系统,剖析商品模块中商品表(spu)、规格表(sku)的数据库是如何设计的

热门文章

  1. android 权重的使用
  2. Nginx并发数、每秒连接数、下载速度限制,防攻击杀手锏
  3. Oracle11g修改实例名和数据库名
  4. Java 9 特性与示例
  5. Hystrix面试 - 基于 Hystrix 信号量机制实现资源隔离
  6. html段落前的空格,HTML空格:空格前后
  7. 使用 XAML 格式化工具:XAML Styler
  8. 最全总结,GitHub Action自动化部署
  9. mac下安装elasticsearch
  10. python标准库之smtplib,poplib,imaplib,smptd