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/8/30 16:52:01 阅读更多 →
系统规划与管理师-IT 服务团队岗位设计方法论与实践

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

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

2026/8/30 21:12:37 阅读更多 →
系统规划与管理师-工作分析 — 人力资源管理的核心基础

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

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

2026/8/30 21:05:53 阅读更多 →

最新新闻

振动信号处理:加速度、速度与位移互转的工程实践指南

振动信号处理:加速度、速度与位移互转的工程实践指南

简介:这是一份面向信号处理、数据分析与工程测试学习者的 Matlab 实用代码包,围绕位移、速度、加速度三种物理量之间的微分与积分转换,提供了可直接运行的脚本与配套示例数据。包内含 3 个 m 文件和 1 个 mat 数据文件,涵盖角位移…

2026/9/3 21:45:52 阅读更多 →
75英寸Mini LED电视怎么选?拆解超级蝶翼星曜屏真实价值

75英寸Mini LED电视怎么选?拆解超级蝶翼星曜屏真实价值

客厅电视选购这件事,我最近被问得最多的问题是:75 英寸 Mini LED 电视到底值不值得加钱?普通 LED 和 Mini LED 差距大不大?“超级蝶翼星曜屏”这种宣传词是不是又一个智商税?尤其是 TCL 75T7M Pro 这类产品&#xff0c…

2026/9/3 21:45:52 阅读更多 →
基于YOLO26的单目测距与测速管线解析:从检测到误差控制的工程实践

基于YOLO26的单目测距与测速管线解析:从检测到误差控制的工程实践

如果你在一个视觉项目里遇到过这样的需求——用普通摄像头识别出前方的人和车,还想顺便知道对方离你有多远、是正在靠近还是远离,甚至希望算出一个大概的运动速度——那么“单目测距与测速”这个方向迟早会找上你。基于 YOLO26 的单目测距与测速感知开源…

2026/9/3 21:45:52 阅读更多 →
Mini LED电视选购:TCL 75T7M Pro与超级蝶翼星曜屏深度解析

Mini LED电视选购:TCL 75T7M Pro与超级蝶翼星曜屏深度解析

最近几年 Mini LED 电视的讨论度一直很高,尤其是 75 英寸这种大尺寸段,Mini LED 背光带来的亮度、对比度优势,确实比传统 LCD 更有旗舰感。后台也经常有朋友问我:TCL 75T7M Pro 这类搭载“超级蝶翼星曜屏”的电视,到底…

2026/9/3 21:45:52 阅读更多 →
75英寸电视选购指南:看懂参数与验机,避开同价位陷阱

75英寸电视选购指南:看懂参数与验机,避开同价位陷阱

在实际选购 75 英寸电视时,消费者面对的往往是“同一价位、参数接近、名字相似”的一批型号,TCL T7M Ultra 75英寸电视是其中关注度较高的一款。它的宣传关键词通常包括高亮度、高色域、高刷新率和游戏模式,但这些关键词并不等价于画质好&…

2026/9/3 21:45:52 阅读更多 →
抖助手第001个开关:作品日期显示的位置、验证方法与风险边界

抖助手第001个开关:作品日期显示的位置、验证方法与风险边界

🔥 个人主页: 杨利杰YJlio ❄️ 个人专栏: 《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》 《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》 《超简单:用Python让Excel飞起来》…

2026/9/3 21:44:50 阅读更多 →

日新闻

AI智能体辅助JS逆向:从V8环境搭建到补环境实战

AI智能体辅助JS逆向:从V8环境搭建到补环境实战

先别急着点开,这不是劝退文,而是想讲清楚一件事:用 AI 做逆向值不值得学?如果要用,怎么搭一套“V8 环境 AI 智能体”来提升效率。最近逆向圈、爬虫圈都在聊 AI Agent、AST 工程逆向、JS 逆向这些词,很多新手…

2026/9/3 0:00:29 阅读更多 →
安卓设备通过修改机型信息解锁游戏高帧率:原理、操作与风险指南

安卓设备通过修改机型信息解锁游戏高帧率:原理、操作与风险指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 0:00:29 阅读更多 →
ARM版OpenJDK 11安装部署全攻略:下载、配置与避坑指南

ARM版OpenJDK 11安装部署全攻略:下载、配置与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 0:00:29 阅读更多 →

周新闻

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

2026/9/3 4:22:22 阅读更多 →
数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

2026/9/3 4:22:01 阅读更多 →
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

2026/9/3 4:22:59 阅读更多 →

月新闻

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

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

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

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

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

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

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

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

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

2026/9/3 4:21:44 阅读更多 →