LeetCode 105:从前序与中序遍历构造二叉树,Java 递归解法详解
一、题目描述给定一棵二叉树的前序遍历preorder和中序遍历inorder请还原这棵二叉树。题目保证数组中没有重复元素。preorder [3, 9, 20, 15, 7] inorder [9, 3, 15, 20, 7]构造结果如下3 / \ 9 20 / \ 15 7关键是从两种遍历序列中确定根节点并划分左右子树。二、前序找根中序分左右先回顾遍历顺序前序遍历根 - 左 - 右 中序遍历左 - 根 - 右前序遍历的第一个元素3是根节点。在中序遍历中找到3[9, 3, 15, 20, 7] ↑ 根节点根节点左边的[9]属于左子树右边的[15,20,7]属于右子树。左子树只有一个节点因此可以同步划分前序遍历左子树preorder [9]inorder [9] 右子树preorder [20,15,7]inorder [15,20,7]两个子问题与原问题结构相同因此可以递归构造从前序遍历中取出当前根节点在中序遍历中找到根节点的位置递归构造左子树递归构造右子树。三、完整 Java 代码class Solution { public TreeNode buildTree(int[] preorder, int[] inorder) { int len preorder.length; if (len 0) { return null; } TreeNode root new TreeNode(preorder[0]); // 找到根节点在中序遍历中的索引位置,这个值也是左子树的所有元素个数 int rootInInorder indexOf(inorder, preorder[0]); // 前序遍历中左子树的部分和右子树的部分 int[] preLeft Arrays.copyOfRange(preorder, 1, 1 rootInInorder); // 复制是左闭右开区间 int[] preRight Arrays.copyOfRange(preorder, 1 rootInInorder, len); // 中序遍历中左子树的部分和右子树的部分 int[] inLeft Arrays.copyOfRange(inorder, 0, rootInInorder); int[] inRight Arrays.copyOfRange(inorder, 1 rootInInorder, len); // 递归构建左右子树 root.left buildTree(preLeft, inLeft); root.right buildTree(preRight, inRight); return root; } // 返回 x 在 a 中的下标保证 x 一定在 a 中 private int indexOf(int[] a, int x) { for (int i 0; ; i) { if (a[i] x) { return i; } } } }四、常见错误1. 把中序遍历的第一个元素当成根节点根节点由前序遍历确定中序遍历只负责划分左右区域。2. 先构造右子树全局指针按“根、左、右”移动必须先递归左子树。3. 区间没有排除根节点正确边界为root.left build(inorderLeft, rootIndex - 1); root.right build(rootIndex 1, inorderRight);

相关新闻

罗克韦尔 AB(伟肯)AB33I 风机驱动板卡

罗克韦尔 AB(伟肯)AB33I 风机驱动板卡

一、板卡基础概述1.1 型号溯源与适配机型AB33I 行业俗称,原厂本体为 VACON 伟肯399I(物料号 PC00299H)风机驱动电源板,罗克韦尔收购伟肯之后,大批量搭载在 AB 大功率变频器内部,现场运维习惯性简称为 AB33I…

2026/10/17 5:47:18 阅读更多 →
如何快速提升日本麻将水平?mahjong-helper智能助手为你提供专业指导

如何快速提升日本麻将水平?mahjong-helper智能助手为你提供专业指导

如何快速提升日本麻将水平?mahjong-helper智能助手为你提供专业指导 【免费下载链接】mahjong-helper 日本麻将助手:牌效防守记牌(支持雀魂、天凤) 项目地址: https://gitcode.com/gh_mirrors/ma/mahjong-helper 你是否在雀…

2026/10/16 16:39:06 阅读更多 →
SV学习记录(二)

SV学习记录(二)

目录 2.1 内建数据类型 2.2 定宽数组 聚合运算 位下标和数组下标 合并数组 合并or非合并? 2.3 动态数组 2.4 队列 2.5 关联数组 2.6 链表 2.7 数组的方法(array methods) 数组的缩减方法 数组定位方法 数组的排序 使用数组定位…

2026/10/17 5:50:02 阅读更多 →

最新新闻

第一个 MCP 服务器:从 SDK 到可用的 tools/resources/prompts,TaoToken 统一 Key 通道实践

第一个 MCP 服务器:从 SDK 到可用的 tools/resources/prompts,TaoToken 统一 Key 通道实践

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

2026/10/19 0:33:04 阅读更多 →
OpenRouter 2026 重磅更新:Agentic Web Tools 统一大模型联网搜索与页面抓取,TaoToken 统一 Key 通道实测

OpenRouter 2026 重磅更新:Agentic Web Tools 统一大模型联网搜索与页面抓取,TaoToken 统一 Key 通道实测

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

2026/10/19 0:33:04 阅读更多 →
C# 集成 OnnxRuntime 部署 PP-Vehicle 车辆分析全流程

C# 集成 OnnxRuntime 部署 PP-Vehicle 车辆分析全流程

简介:本资源为基于 C# 与 Onnx 的 PP-Vehicle 车辆分析完整源码,面向具备一定 C# 与深度学习部署基础、希望快速落地车辆视觉分析功能的开发者。项目整合车辆检测、车型识别、车辆颜色判别与车牌检测等多项能力,可用于智能交通、停车场管理、…

2026/10/19 0:32:03 阅读更多 →
open-code-review:可审计、可干预的开源代码审查框架

open-code-review:可审计、可干预的开源代码审查框架

1. 这不是又一个“AI代码审查工具”,而是开发者自己掌控审查权的起点“open-code-review”这个项目名乍看平平无奇,甚至有点像某个被遗忘在GitHub角落的冷门仓库——没有炫酷的UI,不提“秒级修复”,也不承诺“零Bug交付”。但如果…

2026/10/19 0:31:03 阅读更多 →
Hermes Agent 中 Skills 与 Tools 的关系分析:从 TaoToken 统一 Key 通道看能力编排

Hermes Agent 中 Skills 与 Tools 的关系分析:从 TaoToken 统一 Key 通道看能力编排

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

2026/10/19 0:31:03 阅读更多 →
【AI】codex 使用教程:从 AGENTS.md 到 skills 的完整配置指南

【AI】codex 使用教程:从 AGENTS.md 到 skills 的完整配置指南

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

2026/10/19 0:29:02 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

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

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/18 12:16:16 阅读更多 →