JAVA练习304- 二叉树的中序遍历
题目概览给定一个二叉树的根节点root返回它的中序遍历。示例 1输入root [1,null,2,3]输出[1,3,2]示例 2输入root []输出[]示例 3输入root [1]输出[1]提示树中节点数目在范围[0, 100]内-100 Node.val 100进阶:递归算法很简单你可以通过迭代算法完成吗来源94. 二叉树的中序遍历 - 力扣LeetCode解题分析方法一递归左 - 根 - 右 顺序递归即可。时间复杂度O(n)空间复杂度O(n)/** * Definition for a binary tree node. * public 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; * } * } */ class Solution { public ListInteger inorderTraversal(TreeNode root) { ListInteger result new ArrayList(); if (root null) { return result; } ListInteger left inorderTraversal(root.left); result.addAll(left); result.add(root.val); ListInteger right inorderTraversal(root.right); result.addAll(right); return result; } }方法二迭代 栈根据栈先进后出的特性可以现将二叉树的所有左节点都入栈栈顶的节点一定是第一个节点出栈并记录该节点值将该节点右节点继续刚才左节点入栈的操作没有则继续出栈直到栈为空。时间复杂度O(n)空间复杂度O(n)/** * Definition for a binary tree node. * public 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; * } * } */ class Solution { public ListInteger inorderTraversal(TreeNode root) { ListInteger result new ArrayList(); if (root null) { return result; } DequeTreeNode stack new LinkedList(); while(root ! null || !stack.isEmpty()) { while(root ! null) { stack.push(root); root root.left; } TreeNode node stack.pop(); result.add(node.val); root node.right; } return result; } }

相关新闻

5个简单步骤掌握Poppins:免费开源的多语言字体终极指南

5个简单步骤掌握Poppins:免费开源的多语言字体终极指南

5个简单步骤掌握Poppins:免费开源的多语言字体终极指南 【免费下载链接】Poppins Poppins, a Devanagari Latin family for Google Fonts. 项目地址: https://gitcode.com/gh_mirrors/po/Poppins 你是否曾经为寻找一款既美观又支持多语言的字体而烦恼&#…

2026/9/19 2:24:07 阅读更多 →
系统规划与管理师-IT 服务团队岗位设计方法论与实践

系统规划与管理师-IT 服务团队岗位设计方法论与实践

一、引言(一)核心概念定义岗位设计是在工作分析输出的岗位说明书基础上,对岗位的工作内容、职责权限、协作关系进行系统性重构的管理活动,核心目标是实现组织绩效提升与员工个人需求满足的双赢,属于软考高级系统规划与…

2026/9/24 23:10:32 阅读更多 →
系统规划与管理师-工作分析 — 人力资源管理的核心基础

系统规划与管理师-工作分析 — 人力资源管理的核心基础

一、引言核心概念定义工作分析又称职务分析、岗位分析,是通过系统的方法收集、整理、分析组织中岗位的工作内容、职责权限、工作关系、工作环境,以及任职者所需的知识、技能、能力、素质等要求的系统性活动,本质是对组织分工边界与分工标准的…

2026/9/25 2:42:49 阅读更多 →

最新新闻

Atlas 300V 24G推理卡跑YOLO:从环境搭建到部署调优全指南

Atlas 300V 24G推理卡跑YOLO:从环境搭建到部署调优全指南

1. 一台推理卡,为什么值得单独写一篇先说结论:Atlas 300V 24G是华为昇腾生态里一款纯推理场景的加速卡,目标对象非常明确——跑YOLO这类检测模型,做视频流分析、边缘智能、工业质检、园区安防等任务。很多刚接触昇腾的人会被一堆名…

2026/9/25 7:34:54 阅读更多 →
Atlas 300V部署YOLO全流程:模型转换、推理加速与性能调优

Atlas 300V部署YOLO全流程:模型转换、推理加速与性能调优

1. 先弄清楚Atlas到底是干什么的如果你最近在关注AI推理、边缘计算或者国产算力相关的消息,应该绕不开“atlas”这个词。但对于刚接触的人来说,这名字其实挺容易让人迷糊——它既不是一个软件框架,也不是某个单一芯片品牌,而是华为…

2026/9/25 7:34:54 阅读更多 →
WPScan 动态指纹识别实战:以 iG:Syntax Hiliter 插件的 CHANGELOG.md 为引,解析 BodyPattern 版本探测原理

WPScan 动态指纹识别实战:以 iG:Syntax Hiliter 插件的 CHANGELOG.md 为引,解析 BodyPattern 版本探测原理

网络安全漏洞扫描渗透测试应用安全CLI 【免费下载链接】wpscan WPScan WordPress security scanner. Written for security professionals and blog maintainers to test the security of their WordPress websites. Contact us via contactwpscan.com 项目地址: ht…

2026/9/25 7:34:54 阅读更多 →
别再把11801-1当网线标准:链路分级与验收全攻略

别再把11801-1当网线标准:链路分级与验收全攻略

简介:这是一份ISO/IEC 11801-1:2017标准原版PDF文档,即《信息技术 客户场所通用布线 第1部分:总体要求》,属于网线及综合布线设计与验收领域的核心国际规范。标准发布于2017年11月,适用于局域网、城域网、广…

2026/9/25 7:34:54 阅读更多 →
Atlas 300V部署YOLO实战:从工具链到性能优化全解析

Atlas 300V部署YOLO实战:从工具链到性能优化全解析

做AI部署这行的人,最近应该没少被“Atlas”这个词刷屏。特别是手头在跑YOLO系列模型的朋友,时不时就会刷到“Atlas部署YOLO”“Atlas 300V 24G”之类的讨论。很多人第一反应是:这玩意儿到底是不是一张GPU?跟N卡有什么区别&#xf…

2026/9/25 7:34:53 阅读更多 →
开源LLM代码审查工作流:CLI+Git原生集成实践

开源LLM代码审查工作流:CLI+Git原生集成实践

1. 项目概述:这不是一个“工具”,而是一套可落地的开源代码审查工作流open-code-review 这个名字乍看像某个具体软件,但实际它代表的是一类正在快速成型的新型开发实践——用开源、透明、可审计的方式,把大语言模型(LL…

2026/9/25 7:33:53 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →