当前位置: 首页 > news >正文

力扣 LeetCode 94. 二叉树的中序遍历(Day6:二叉树)

解题思路:

方法一:递归(左中右)

class Solution {List<Integer> res = new ArrayList<>();public List<Integer> inorderTraversal(TreeNode root) {recur(root);return res;}public void recur(TreeNode root) {if (root == null) return;recur(root.left);res.add(root.val);recur(root.right);}
}

方法二:迭代(非递归法)

前中后序迭代法都是使用栈

前序和后序使用类似的方法

中序方法不同与前序和后序,需要单独区分

 cur != null 时,首先 cur = cur.left 遍历到底进行栈push

为空时,回到上一个不为空的位置并弹出该值,继续 cur = cur.left 遍历该值右边的位置

注意while循环条件

class Solution {public List<Integer> inorderTraversal(TreeNode root) {Deque<TreeNode> stack = new ArrayDeque<>();List<Integer> res = new ArrayList<>();if (root == null) return res;TreeNode cur = root;while (cur != null || !stack.isEmpty()) {if (cur != null) {stack.push(cur);cur = cur.left;} else {cur = stack.pop();res.add(cur.val);cur = cur.right;}}return res;}
}

http://www.lryc.cn/news/486988.html

相关文章:

  • 删除缓存之后,浏览器显示登录新设备
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04
  • Stable diffusion详细讲解
  • 软件工程期末复习-用例建模
  • 【Golang】——Gin 框架中的表单处理与数据绑定
  • hive-内部表外部表-详细介绍
  • Windows系统 ElasticSearch,分词器、Kibana安装
  • 黑马智数Day10
  • 网络传输:网卡、IP、网关、子网掩码、MAC、ARP、路由器、NAT、交换机
  • MySQL45讲 第二十四讲 MySQL是怎么保证主备一致的?——阅读总结
  • Visual Studio 圈复杂度评估
  • Springboot之登录模块探索(含Token,验证码,网络安全等知识)
  • golang调用模组程序实现交互输入自动化,获取imei及iccid
  • ACE之单例
  • 泷羽sec学习打卡-云技术基础1-docker
  • 7天掌握SQL - 第一天:数据库基础与SQL入门
  • A037-基于Spring Boot的二手物品交易的设计与实现
  • 【异常记录】Junitmock之InvalidUseOfMatchersException异常
  • Spring Boot3自定义starter
  • 掌控 Solidity:事件日志、继承和接口的深度解析
  • 新手教学系列——善用 VSCode 工作区,让开发更高效
  • Vue3 虚拟列表组件库 virtual-list-vue3 的使用
  • WebRTC实现双端音视频聊天(Vue3 + SpringBoot)
  • 第6章详细设计-6.9 PCB审查
  • docker与大模型(口语化原理和实操讲解)
  • Linux之vim模式下全选命令
  • 云原生周刊:Kubernetes v1.32 要来了
  • # JVM学习
  • 【代码随想录day33】【C++复健】62.不同路径;63. 不同路径 II;343. 整数拆分;96.不同的二叉搜索树
  • 《勇者斗恶龙3:HD-2D重制版》找幽灵船攻略分享