Leetcode--145. 二叉树的后序遍历(迭代递归)
给定一个二叉树,返回它的 后序 遍历。
示例:
输入: [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. 二叉树的后序遍历(迭代递归)相关推荐
- LeetCode —— 145. 二叉树的后序遍历【递归与迭代】(Python)
给定一个二叉树,返回它的 后序 遍历. 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 解法一:递归 # Definition for a binary tree node. # class Tr ...
- LeetCode 145. 二叉树的后序遍历(递归)(迭代)(颜色标记法)
题目描述 给定一个二叉树,返回它的后序遍历 思路 详见链接 代码 递归 #class TreeNode: # def __init__(self,x): # self.val = x # self.l ...
- LeetCode 145. 二叉树的后序遍历(后序遍历总结)
文章目录 1. 题目信息 2. 解法 2.1 递归 2.2 循环,必须掌握 a. 单栈 b. 双栈解法 3. 前中后序总结 1. 题目信息 给定一个二叉树,返回它的 后序 遍历. 示例:输入: [1, ...
- Leetcode 145. 二叉树的后序遍历 (每日一题 20210930)
给定一个二叉树,返回它的 后序 遍历.示例:输入: [1,null,2,3] 1\2/3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗?链接:https://leetcod ...
- [leetcode]145.二叉树的后序遍历
给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1\2/3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 1.递归解法 class So ...
- LeetCode 145 二叉树的后序遍历(非递归)
题目: 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1\2/3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 解题思路: 1.使用一 ...
- LeetCode 145 ——二叉树的后序遍历
1. 题目 2. 解答 2.1. 递归法 定义一个存放树中数据的向量 data,从根节点开始,如果节点不为空,那么 递归得到其左子树的数据向量 temp,将 temp 合并到 data 中去 递归得到 ...
- 二叉树后序遍历_LeetCode算法145. 二叉树的后序遍历
leetcode LeetCode算法-145. 二叉树的后序遍历 145. 二叉树的后序遍历 题目 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / ...
- LeetCode二叉树系列——145.二叉树的后序遍历
一.题目描述: 144. 二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 后序遍历. . 二.题解 对二叉树不了解的,可以先看第三部分的分析 /*** Definition for ...
最新文章
- 分享一个帮助你自定义标签并且兼容现代浏览器的javascript类库 : X-tag
- 电脑快捷键横屏变竖屏,电脑显示器竖屏横屏来回切换怎么设置
- Redis源代码分析-内存数据结构intset
- java和打印机_java实现打印机打印的区别
- 线性代数 【22】 抽象的向量空间
- 实时体积云渲染(地平线):二.Perlin噪声和Worley噪声
- sql server 查询某个表被哪些存储过程调用
- Android打造自定义通用popWindow
- iis10 asp 如何连接mdb_如何攻破一个网站
- 百度搜索引擎都有哪些算法
- ubuntu 通过ssh链接ARM板 及 IMX6使用调试串口通信
- 人工智能课程设计——八皇后问题的求解算法比较
- 联想台式计算机光驱启动,联想电脑怎么设置光驱启动【图文】
- Mac OS QQ的截屏快捷键设置
- vue页面特效:雨滴、流星
- access h3c交换机光口_h3c交换机命令,很全面
- Eviews如何做VAR
- java基础面试题题库一(传智专修学院2017级Java4班)
- 机器学习从入门到创业手记-1.理论概念
- 2017年4月观影分享
热门文章
- 程序员面试金典 - 面试题 05.04. 下一个数(线性扫描)
- 程序员面试金典 - 面试题 04.04. 检查平衡性(二叉树高度)
- LeetCode 342. 4的幂(位运算)
- LeetCode 454. 四数相加 II(哈希)
- blue html中转换,BlueFox Free PDF to HTML Converter(PDF文件转换软件)
- 策略模式java 用例_java策略模式简单用例
- 服务器不知别内存_图文版 许迎果第63期 选购和使用内存需要注意的点
- 南工大计算机学院,江南-欢迎访问湖北工业大学计算机学院官方网站
- Linux无法连接远程仓库,ssh无法连接到远端Ubuntu的解决方法
- bootstrap 树形表格渲染慢_layUI之树状表格异步加载组件treetableAsync.js(基于treetable.js)...