LeetCode刻意练习22--二叉树的中序遍历
中序遍历(左子树->根节点->右子树)
方法一:
递归
public List<Integer> inorderTraversal(TreeNode root) {List<Integer> ans = new LinkedList<>();traversal(root, ans);return ans;}private void traversal(TreeNode root, List<Integer> ans) {if (root != null) {if (root.left != null)traversal(root.left, ans);ans.add(root.val);if (root.right != null)traversal(root.right, ans);}}
方法二:
循环迭代,这里使用栈来模拟递归过程。
思路:
1.创建一个空栈s
2.用 cur
来跟踪根结点,cur
初始化为null
.
3 如果cur
不为空,则将它存进栈s
中,并且,将cur
沿着左子树下移,直到cur
为空。
4.如果栈不为空,令cur
指向栈顶元素的右子树,将栈顶元素弹出来,并且将这个弹出来的元素 存进链表。重复第三步
5.当栈为空,并且cur没有指向时,我们迭代结束
public List<Integer> inorderTraversal(TreeNode root) {List<Integer> ans = new LinkedList<>();Stack<TreeNode> s = new Stack<>();TreeNode cur = root;while (cur != null || !s.isEmpty()) {while (cur != null) {s.push(cur);cur = cur.left;}if (!s.isEmpty()) {cur = s.peek().right;ans.add(s.pop().val);}}return ans;}
LeetCode刻意练习22--二叉树的中序遍历相关推荐
- leetcode力扣94. 二叉树的中序遍历
给定一个二叉树,返回它的中序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] python写中序遍历其实和c++很像 ...
- Leetcode题库 94.二叉树的中序遍历(递归 C实现)
文章目录 解析 代码 解析 中序遍历:先左再中后右 Func函数,接收一个节点,节点非空,则先遍历其左子树,再存入自身val值,最后遍历右子树 ret数组存储每个非空节点的val值 pos为下一个存入 ...
- leetcode刷题:二叉树的中序遍历
题目: 分析: 代码如下: class Solution { public:vector<int> inorderTraversal(TreeNode* root) {stack<T ...
- 《LeetCode力扣练习》第94题 二叉树的中序遍历 Java
<LeetCode力扣练习>第94题 二叉树的中序遍历 Java 一.资源 题目: 给定一个二叉树的根节点 root ,返回它的 中序 遍历. 示例 1: 输入:root = [1,nul ...
- LeetCode 92反转链表Ⅱ93复制ip地址94二叉树的中序遍历
微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...
- Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历
Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...
- leetcode - 94. 二叉树的中序遍历
给定一个二叉树,返回它的中序遍历.中序遍历(LDR)是二叉树遍历的一种,也叫做中根遍历.中序周游.在二叉树中,中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树. 示例: 进阶: 递归算法很简单, ...
- 二叉树的中序遍历 [递归 迭代]
中序遍历的递归 & 迭代 前言 一.二叉树的中序遍历 二.递归 & 迭代 1.递归版 2.迭代(断左子树版) 3.迭代(root迭代版) 4.mirror(O(1)空间版) 总结 参考 ...
- 每日一题——二叉树的中序遍历
菜鸡每日一题系列打卡94天 每天一道算法题目 小伙伴们一起留言打卡 坚持就是胜利,我们一起努力! 题目描述(引自LeetCode) 给定一个二叉树,返回它的中序遍历. 示例: 输入: [1,null, ...
最新文章
- 将新更新从原始GitHub存储库中提取到派生的GitHub存储库中
- Module Zero之用户管理
- Linux /etc/profile文件详解
- vector 查找_同样是Excel中的查找函数,这个函数却比VLOOKUP功能强100倍
- 腾讯万亿级Elasticsearch应用及优化解密
- [蓝桥杯2018决赛]换零钞-枚举
- cmd中加载java源文件_如何在cmd中编译和运行java源文件
- stm32c语言写数码管定时器,使用TIM1产生1秒定时控制数码管显示0-9(STM32_10)
- vSAN其实很简单-vSAN 原厂支持的包含范围
- 如何在多个SQL Server上运行备份
- duilib入门简明教程 -- 前言(1)
- CSS3最常用选择器总结笔记
- Matlab计算机视觉/图像处理工具箱推荐
- 基于JavaWeb的C2C网上购物平台系统设计
- 人在囧途之tar命令
- 【WebLogic】解决opatch执行报错“Exception occured: fuser could not be located”
- python鼠标点击事件
- 做自媒体视频变现的三大要素!
- 【PYNQ】PYNQ的视频资料介绍
- 移动群智感知应用学习
热门文章
- 笔记本win10更新无线服务器,win10系统笔记本无线网络找不到的解决方法
- scp自动输入密码配置
- Design System Application - Chapter 3 字号 Font Size
- 以前写的一首现代诗,无题
- AVFoundation Programming Guide(官方文档翻译2)Using Assets - 使用Assets
- 打开qq时出现电脑屏幕闪烁
- 电脑QQ表情收藏的测试用例
- 介绍一下关于goodnotes,notability的手帐笔记素材的网站,含有A4大量的打印纸,电子手帐,贴图,便签,字体
- android 9.0定时开机的实现
- 微信小程序自定义的导航栏