算法打卡Day16_leetcode _94. 二叉树的中序遍历
人生如一场修行,得意时“一日看尽长安花”,艰难时“倒新停浊酒杯”。但生命的跋涉不能回头,哪怕“畏途巉岩不可攀”,也要“会当凌绝顶”。哪怕“无人会,登临意”,也要“猛志固常在”。从经典中汲取“九万里风鹏正举”的力量,历练“也无风雨也无晴”的豁然,“待阳日”,我们“还来就花”。
Leetcode原题
94.二叉树中序遍历
思路
首先说一下二叉树。什么是二叉树呢,二叉树就是每个节点最多只有2个的有序树。通常子树的根被称作“左子树”和“右子树”。”
中序遍历是二叉树遍历的一种,也叫做中根遍历、中序周游。在二叉树中,中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。
了解了这个我们接下来实现就很简单
方法一 递归实现
class Solution {public List<Integer> inorderTraversal(TreeNode root) {//中序遍历: 左中右List<Integer> res =new ArrayList<>();accessTree(root, res);return res;}public void accessTree(TreeNode root, List<Integer> res){if(root == null){return;}//递归左中右accessTree(root.left,res);res.add(root.val);accessTree(root.right,res);}
}
递归实现通常很简单,但是会让你忽律很多的细节。
方法二 迭代
方法一的递归函数我们也可以用迭代的方式实现,两种方式是等价的,区别在于递归的时候隐式地维护了一个栈,而我们在迭代的时候需要显式地将这个栈模拟出来,其他都相同,具体实现可以看下面的代码。
class Solution {public List<Integer> inorderTraversal(TreeNode root) {//中序遍历: 左中右List<Integer> res =new ArrayList<>();Deque<TreeNode> statck =new LinkedList<>();while(root!=null || !statck.isEmpty()){while(root!= null){//先添加跟节点statck.push(root);//然后左节点入栈root= root.left;}//左节点遍历完,出栈,并添加入链表root = statck.pop();res.add(root.val);//遍历右节点root = root.right;}return res;}
}
有兴趣的老爷,还可以关注我的公众号【一起收破烂】,回复【006】获取 最新java面试资料以及简历模型120套哦~
算法打卡Day16_leetcode _94. 二叉树的中序遍历相关推荐
- 二叉树的中序遍历_94. 二叉树的中序遍历 - 中等
回学校了,快乐的论文时光又要开始了!今天又是没有灵感的一天. 题目描述: 给定一个二叉树,返回它的中序 遍历. 测试用例: 输入: [1,null,2,3]12/3 输出: [1,3,2] 进阶: 递 ...
- 【数据结构与算法】之深入解析“二叉树的中序遍历”的求解思路与算法示例
一.题目要求 给你二叉树的根节点 root ,返回它节点值的中序遍历. 示例 1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2: 输入
- 二叉树的中序遍历非递归方法(算法导论第三版12.1-3)
二叉树的中序遍历非递归方法(算法导论第三版12.1-3) 1⃣️用栈实现 template<typename T> void inorder_tree_walk_non_recursion ...
- LeetCode 92反转链表Ⅱ93复制ip地址94二叉树的中序遍历
微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...
- 每日一题——二叉树的中序遍历
菜鸡每日一题系列打卡94天 每天一道算法题目 小伙伴们一起留言打卡 坚持就是胜利,我们一起努力! 题目描述(引自LeetCode) 给定一个二叉树,返回它的中序遍历. 示例: 输入: [1,null, ...
- 《LeetCode力扣练习》第94题 二叉树的中序遍历 Java
<LeetCode力扣练习>第94题 二叉树的中序遍历 Java 一.资源 题目: 给定一个二叉树的根节点 root ,返回它的 中序 遍历. 示例 1: 输入:root = [1,nul ...
- leetcode - 94. 二叉树的中序遍历
给定一个二叉树,返回它的中序遍历.中序遍历(LDR)是二叉树遍历的一种,也叫做中根遍历.中序周游.在二叉树中,中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树. 示例: 进阶: 递归算法很简单, ...
- LeetCode-94. 二叉树的中序遍历
题目描述: 给定一个二叉树的根节点 root ,返回它的 中序 遍历. 输入:root = [1,null,2,3] 输出:[1,3,2] 思路分析: 用递归或是迭代算法来解决. 递归: 首先我们需要 ...
- Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历
Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...
最新文章
- Oracle 哈希连接原理
- 引入 ServletContextListener @Autowired null 解决办法
- 初学Java Web(2)——搭建Java Web开发环境
- 小米笔记本充电实测追求速度牺牲兼容性小米笔记本充电驱动_是海尔?也是雷神?不足1千克MixBook Air超轻薄笔记本...
- js实现向上滚动效果
- Java中getResource()的用法
- 三菱fx3u中文手册_3个月高效掌握三菱PLC!四个阶段经验大总结~
- 如何检查PHP数组是关联数组还是顺序数组?
- 新手干货:Vue - 事件修饰符
- Windows2000系统下载安装,怀念一下
- python 发送邮件实现 抄送,密送
- 客户管理系统之数据库设计
- mysql archer,archer安装及使用
- 用Word转换向导批量转换Word文档(转)
- 幽默感也有套路:可用数学模型量化
- 微软展示Windows 8新LOGO:倾斜纯蓝色窗口
- 在线通过dd命令备份分区
- 22、R329刷机受阻和测试仿真环境demo
- 硬件描述语言Verilog学习(三)
- cae计算机仿真分析技术,仿真分析工作在研发中的定位