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

示例:

输入: [1,null,2,3]  
   1
    \
     2
    /
   3

输出: [3,2,1]

代码:

迭代:

从根节点开始依次迭代,弹出栈顶元素输出到输出列表中,然后依次压入它的所有孩子节点,按照从上到下、从左至右的顺序依次压入栈中。

/**

* Definition for a binary tree node.

* public class TreeNode {

*     int val;

*     TreeNode left;

*     TreeNode right;

*     TreeNode(int x) { val = x; }

* }

*/

class Solution {

public List<Integer> postorderTraversal(TreeNode root) {

List<Integer> result = new LinkedList<>();

Stack<TreeNode> stack = new Stack<>();

if(root==null){

return result;

}

stack.add(root);

while(!stack.isEmpty()){

TreeNode temp = stack.pop();

result.add(0,temp.val);

if(temp.left!=null){

stack.add(temp.left);

}

if(temp.right!=null){

stack.add(temp.right);

}

}

return result;

}

}

递归:

/**

* Definition for a binary tree node.

* public class TreeNode {

*     int val;

*     TreeNode left;

*     TreeNode right;

*     TreeNode(int x) { val = x; }

* }

*/

class Solution {

List<Integer> result = new LinkedList<>();

public List<Integer> postorderTraversal(TreeNode root) {

if(root==null){

return result;

}

helper(root);

return result;

}

public void helper(TreeNode root){

if(root==null){

return;

}

helper(root.left);

helper(root.right);

result.add(root.val);

}

}

Leetcode--145. 二叉树的后序遍历(迭代递归)相关推荐

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

    给定一个二叉树,返回它的 后序 遍历. 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 解法一:递归 # Definition for a binary tree node. # class Tr ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. LeetCode二叉树系列——145.二叉树的后序遍历

    一.题目描述: 144. 二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 后序遍历. . 二.题解 对二叉树不了解的,可以先看第三部分的分析 /*** Definition for ...

最新文章

  1. 分享一个帮助你自定义标签并且兼容现代浏览器的javascript类库 : X-tag
  2. 电脑快捷键横屏变竖屏,电脑显示器竖屏横屏来回切换怎么设置
  3. Redis源代码分析-内存数据结构intset
  4. java和打印机_java实现打印机打印的区别
  5. 线性代数 【22】 抽象的向量空间
  6. 实时体积云渲染(地平线):二.Perlin噪声和Worley噪声
  7. sql server 查询某个表被哪些存储过程调用
  8. Android打造自定义通用popWindow
  9. iis10 asp 如何连接mdb_如何攻破一个网站
  10. 百度搜索引擎都有哪些算法
  11. ubuntu 通过ssh链接ARM板 及 IMX6使用调试串口通信
  12. 人工智能课程设计——八皇后问题的求解算法比较
  13. 联想台式计算机光驱启动,联想电脑怎么设置光驱启动【图文】
  14. Mac OS QQ的截屏快捷键设置
  15. vue页面特效:雨滴、流星
  16. access h3c交换机光口_h3c交换机命令,很全面
  17. Eviews如何做VAR
  18. java基础面试题题库一(传智专修学院2017级Java4班)
  19. 机器学习从入门到创业手记-1.理论概念
  20. 2017年4月观影分享

热门文章

  1. 程序员面试金典 - 面试题 05.04. 下一个数(线性扫描)
  2. 程序员面试金典 - 面试题 04.04. 检查平衡性(二叉树高度)
  3. LeetCode 342. 4的幂(位运算)
  4. LeetCode 454. 四数相加 II(哈希)
  5. blue html中转换,BlueFox Free PDF to HTML Converter(PDF文件转换软件)
  6. 策略模式java 用例_java策略模式简单用例
  7. 服务器不知别内存_图文版 许迎果第63期 选购和使用内存需要注意的点
  8. 南工大计算机学院,江南-欢迎访问湖北工业大学计算机学院官方网站
  9. Linux无法连接远程仓库,ssh无法连接到远端Ubuntu的解决方法
  10. bootstrap 树形表格渲染慢_layUI之树状表格异步加载组件treetableAsync.js(基于treetable.js)...