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

力扣94题(java语言)

题目 

思路

使用一个栈来模拟递归的过程,以非递归的方式完成中序遍历(使用栈可以避免递归调用的空间消耗)。

遍历顺序步骤:

  1. 遍历左子树
  2. 访问根节点
  3. 遍历右子树
package algorithm_leetcode;import java.util.ArrayList;
import java.util.List;
import java.util.Stack;public class Solution_94 {public List<Integer> inorderTraversal(TreeNode root) {// 待处理节点Stack<TreeNode> stack = new Stack<>();// 结果List<Integer> output_arr = new ArrayList<>();// 如果root为空if (root == null) {// 返回空的 output_arrreturn output_arr;}// 初始化为根节点TreeNode current = root;// 循环 只要当前节点不为空,并且栈不为空 while (current != null || !stack.isEmpty()) {// 当前节点不为空,直到左子树为空while (current != null) {// 添加到栈stack.push(current);// 当前节点移动到左子节点current = current.left;}// 弹出栈节点current = stack.pop();// 添加到结果中output_arr.add(current.val);// 如果有右子节点,就移动到右子节点current = current.right;}return output_arr;}
}class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val = val; }TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • wpf中轮询显示图片
  • Jacoco 单元测试配置
  • 设计模式14-享元模式
  • 江科大/江协科技 STM32学习笔记P13
  • IP地址在后端怎么存才好?
  • Java项目中整合多个pdf合并为一个pdf
  • 【Java版数据结构】初识泛型
  • OpenKylin 系统中禁用 Win 键
  • html+css前端作业 王者荣耀官网1个页面(带报告)
  • Java面试八股之Spring框架的核心模块
  • Web动画(lottie篇)
  • Unity3D结合AI教育大模型 开发AI教师 AI外教 AI英语教师案例
  • 昇思25天学习打卡营第23天|LSTM+CRF序列标注
  • 图像生成中图像质量评估指标— LPIPS介绍
  • JCR一区级 | Matlab实现TTAO-Transformer-LSTM多变量回归预测
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【翻译】babel对TC39装饰器草案的实现
  • 77. Combinations
  • ECMAScript入门(七)--Module语法
  • maven工程打包jar以及java jar命令的classpath使用
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • Odoo domain写法及运用
  • Python学习之路16-使用API
  • unity如何实现一个固定宽度的orthagraphic相机
  • vagrant 添加本地 box 安装 laravel homestead
  • Vue组件定义
  • 入门到放弃node系列之Hello Word篇
  •  一套莫尔斯电报听写、翻译系统
  • 源码安装memcached和php memcache扩展
  • gunicorn工作原理
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 我们雇佣了一只大猴子...
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​香农与信息论三大定律
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • (06)金属布线——为半导体注入生命的连接
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (26)4.7 字符函数和字符串函数
  • (C语言)二分查找 超详细
  • (pojstep1.3.1)1017(构造法模拟)
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .cfg\.dat\.mak(持续补充)
  • .NET MVC第五章、模型绑定获取表单数据
  • .net 提取注释生成API文档 帮助文档
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .NET开发者必备的11款免费工具
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理