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

力扣106 从中序与后续遍历序列构造二叉树

文章目录

  • 题目描述
  • 解题思路
  • 代码


题目描述

给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。

示例 1:
在这里插入图片描述

输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20,3]
输出:[3,9,20,null,null,15,7]
示例 2:

输入:inorder = [-1], postorder = [-1]
输出:[-1]

提示:

1 <= inorder.length <= 3000
postorder.length == inorder.length
-3000 <= inorder[i], postorder[i] <= 3000
inorder 和 postorder 都由 不同 的值组成
postorder 中每一个值都在 inorder 中
inorder 保证是树的中序遍历
postorder 保证是树的后序遍历

解题思路

我感觉这道题的注释不是很好写的很清晰,建议先看一下另外一道题的思路:最大二叉树
然后回来再看这道题的注释就会清晰很多

代码

class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) {return build(inorder,0, inorder.length-1,postorder,0, postorder.length-1);}//这个函数负责构造二叉树public TreeNode build(int[] inorder,int leftIndex,int rightIndex,int[] postorder,int postLeftIndex,int postRightIndex){//如果left坐标小于right坐标,则表明是一个空树,也是递归出口if (leftIndex>rightIndex||postLeftIndex>postRightIndex){return null;}//构造根节点TreeNode root  = new TreeNode(postorder[postRightIndex]);//找到根节点在中序遍历中的位置int rootIndex = 0;for (int i = leftIndex; i <= rightIndex; i++) {if (inorder[i]==root.val){rootIndex=i;break;}}//中序遍历中rootIndex-leftIndex表示左子树有多少个节点int lenOfLeft = rootIndex-leftIndex;//寻找左子树的根节点,最后一个参数表示左子树的后序遍历序列结束的位置TreeNode leftChild = build(inorder,leftIndex,rootIndex-1,postorder,postLeftIndex,postLeftIndex+lenOfLeft-1);//寻找右子树的根节点TreeNode rightChild = build(inorder,rootIndex+1,rightIndex,postorder,postLeftIndex+lenOfLeft,postRightIndex-1);//root分别指向左子树和右子树root.left = leftChild;root.right = rightChild;return root;}
}

相关文章:

力扣106 从中序与后续遍历序列构造二叉树

文章目录 题目描述解题思路代码 题目描述 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7], …...

数字逻辑-时序逻辑电路一

一、实验目的 &#xff08;1&#xff09;熟悉触发器的逻辑功能及特性。 &#xff08;2&#xff09;掌握集成D和JK触发器的应用。 &#xff08;3&#xff09;掌握时序逻辑电路的分析和设计方法。 二、实验仪器及材料 三、实验内容及步骤 1、用D触发器&#xff08;74LS74&am…...

web 课程

文章目录 格式图片超链接书签链接表格例子横跨束跨 格式 <br /> <br/> #换行图片 <img> 标签是用于在网页中嵌入图像的 HTML 标签&#xff0c;它有一些属性可以用来控制图像的加载、显示和交互。以下是对 <img> 标签常用属性的详细介绍&#xff1a;…...

工业园区智慧水电设备管控系统

在现代工业园区中&#xff0c;水电设备的管控系统起着至关重要的作用。这些系统不仅仅是简单的机械装置&#xff0c;它们更是一种智慧的结合&#xff0c;为工业生产提供了可靠的保障和高效的管理。让我们一起来探索工业园区智慧水电设备管控系统的奥秘。 我们来看看水电设备的…...

Git之版本回退

文章转载于&#xff1a;https://www.jianshu.com/p/3020740561a8 以前&#xff0c;如果是要去除某一块功能&#xff0c;我都是选择性删除&#xff0c;选择性注释&#xff0c;然后前后逻辑各种查看&#xff0c;各种比较。每一次&#xff0c;改完这些我总感觉心好累啊&#xff01…...

「jQuery系列」jQuery 校验表单(Validate)

文章目录 一、校验表单&#xff08;Validate&#xff09;1. 基本用法2. 验证规则3. 国际化4. 插件扩展 二、Validate常用方法1. 基本验证2. 自定义验证规则3. 远程验证&#xff08;通过 AJAX&#xff09;4. 提交处理&#xff08;submitHandler&#xff09;5. 忽略某些元素的验证…...

【Java设计模式】十九、中介者模式

文章目录 1、中介者模式2、案例3、总结 1、中介者模式 如图&#xff1a; 同事类之间关联较多时&#xff0c;整体出现网状结构&#xff0c;耦合度极高。一个对象一变动&#xff0c;好多对象都得改。若变为右边的星形结构&#xff0c;则一个类的变动&#xff0c;只影响自身与中介…...

这个学习Python的神仙网站,后悔没早点发现

Python 作为时下最流行的编程语言&#xff0c;很多初学者都将它作为自学编程的首选。不管是有编程经验的开发者&#xff0c;还是新手小白&#xff0c;在这个 AIGC 时代&#xff0c; Python 都可以带你探索新世界。 入门 Python 绝非难事&#xff0c;但如何让自己坚持学下去是如…...

牛津大学“领域驱动设计”课程

领域驱动设计&#xff08;“DDD”&#xff09;是一种专注于系统领域而不是技术的软件设计方法。重点是构建共享的心理模型并以尽可能简单的方式在代码中表示该领域模型。数据库存储、框架等技术细节被认为是设计的次要方面。该模块将重点关注 DDD 和一般设计以及相关主题&#…...

Redisson分布式锁解决方案

官方地址 官网: https://redisson.org github: https://github.com/redisson/redisson 基于setnx实现的分布式锁存在的问题 redisson分布式锁原理 不可重入: 利用hash结构记录线程id和重入次数不可重试: 利用信号量和PubSub功能实现等待、唤醒, 获取锁失败的重试机制超时释放…...

linux命令深入研究——cat

cat命令&#xff0c;“猫”&#xff0c;可以理解为瞄一眼文件内容&#xff0c;其中可以用重定向符号对文件进行一些修改&#xff0c;如增加&#xff0c;删除文件内容&#xff0c;其命令参数如-n&#xff0c;-s&#xff0c;-b可以输出带有行号的行 如果想要快速删除文件内容&…...

代码随想录算法训练营第40天|343. 整数拆分、96.不同的二叉搜索树

343. 整数拆分 题目链接&#xff1a;link 文章讲解&#xff1a;link 视频讲解&#xff1a;link 一、做题感受&第一想法 其实第一反应是回溯……但感觉每层的集合都会很繁琐 二、学习文章后收获 1.动态规划思路 动规五要素分析 dp和i的定义&#xff1a;dp[i]指把i拆分后最…...

二叉树算法

递归序 每个节点都能回到3次! 相当于2执行完然后返回了代码会往下走,来到3节点 小总结: 也就是4节点先来到自己一次,不会执行if,先调用自己左边的那个函数,但是是null,直接返回。 这个函数执行完了,就会回到自己,调用自己右边的那个函数,结果又是空,又返回,回到…...

【2024年5月备考新增】《软考真题分章练习(答案解析) - 4 项目范围管理(高项)》

点击跳转无答案版 1、() includes the processes required to ensure that the project includes all the work required , and only the work required , to complete the project successfully . Managing the project scope is primarily concerned with defining and con…...

Docker拉取镜像存储不足

在使用Docker时&#xff0c;我们经常遇到一个问题&#xff0c;就是拉取镜像时提示存储空间不足。这是因为Docker在拉取镜像时需要将镜像文件下载到本地存储中&#xff0c;而有时本地存储空间不足以容纳完整的镜像文件。 本文将介绍一些解决这个问题的方法&#xff0c;并提供相…...

JUNIT5+Mockito单元测试

文章目录 1、前言2、Maven依赖2.1 JDK21SpringBoot版本基于3.1.02.2 JDK17SpringBoot版本基于2.2.5.RELEASE 3、业务代码4、单元测试 1、前言 之前写过一篇使用testMe自动生成单元测试用例&#xff0c;使用的是junit4来编写的单元测试用例&#xff0c;目前很多新项目都已经使用…...

【C#】【SAP2000】读取SAP2000中所有Frame对象的应力比到Grasshopper中

if (build true) {// 连接到正在运行的 SAP2000// 使用 System.Runtime.InteropServices.Marshal.GetActiveObject 方法获取正在运行的 SAP2000 实例cOAPI mySapObject (cOAPI)System.Runtime.InteropServices.Marshal.GetActiveObject("CSI.SAP2000.API.SapObject"…...

一台服务器部署两个独立的mysql实例

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…...

SpringBoot(Lombok + Spring Initailizr + yaml)

1.Lombok 1.基本介绍 2.应用实例 1.pom.xml 引入Lombok&#xff0c;使用版本仲裁 <!--导入springboot父工程--><parent><artifactId>spring-boot-starter-parent</artifactId><groupId>org.springframework.boot</groupId><version&g…...

数据库基础知识超详细解析~‍(进阶/复习版)

文章目录 前言一、数据库的操作1.登入数据库2.创建数据库3.显示当前数据库4.使用数据库5.删除数据库 二、常用数据类型三、数据库的约束1约束类型2NULL约束3UNIQUE:唯一约束4DEFAULT&#xff1a;默认值约束5 PRIMARY KEY&#xff1a;主键约束6 FOREIGN KEY&#xff1a;外键约束…...

如何突破登录壁垒?多登录系统让所有玩家畅玩同一游戏服务器

如何突破登录壁垒&#xff1f;多登录系统让所有玩家畅玩同一游戏服务器 【免费下载链接】MultiLogin 外置共存 项目地址: https://gitcode.com/gh_mirrors/mu/MultiLogin 在游戏服务器管理中&#xff0c;管理员常常面临一个棘手问题&#xff1a;如何让使用不同账号系统的…...

Graphormer实战:输入SMILES字符串,5分钟获取分子属性预测结果

Graphormer实战&#xff1a;输入SMILES字符串&#xff0c;5分钟获取分子属性预测结果 1. 为什么选择Graphormer进行分子属性预测 在药物发现和材料科学领域&#xff0c;准确预测分子属性是核心挑战之一。传统方法通常需要复杂的实验或耗时的计算模拟&#xff0c;而Graphormer…...

解决多显示器显示错乱难题:SetDPI带来的视觉一致性变革

解决多显示器显示错乱难题&#xff1a;SetDPI带来的视觉一致性变革 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 问题诊断&#xff1a;当多显示器成为工作障碍 为什么专业人士的多屏工作站反而降低效率&#xff1f;摄影师小林的修图软…...

Swin2SR小白快速上手:无需代码,在线修复低清图片

Swin2SR小白快速上手&#xff1a;无需代码&#xff0c;在线修复低清图片 1. 什么是Swin2SR图像修复技术 Swin2SR是一种基于Swin Transformer架构的AI图像超分辨率技术&#xff0c;它能将低质量图片无损放大4倍。与传统的插值放大方法不同&#xff0c;Swin2SR能够"理解&q…...

Qwen2.5-14B-Instruct实战部署:像素剧本圣殿8-Bit Pro版本CUDA加速实测报告

Qwen2.5-14B-Instruct实战部署&#xff1a;像素剧本圣殿8-Bit Pro版本CUDA加速实测报告 1. 项目概览 像素剧本圣殿&#xff08;Pixel Script Temple&#xff09;是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。这款工具将先进的大语言模型推理能力与独特的8-Bit…...

AWPortrait-Z问题解决:图像模糊、速度慢?常见问题一键搞定

AWPortrait-Z问题解决&#xff1a;图像模糊、速度慢&#xff1f;常见问题一键搞定 1. 快速诊断&#xff1a;你的问题属于哪一类&#xff1f; 在使用AWPortrait-Z生成人像时&#xff0c;最常见的问题可以归纳为三类&#xff1a; 图像质量问题&#xff1a;模糊、失真、细节不足…...

OpenClaw多模型切换:SecGPT-14B与Qwen在安全场景的对比调用

OpenClaw多模型切换&#xff1a;SecGPT-14B与Qwen在安全场景的对比调用 1. 为什么需要多模型切换&#xff1f; 去年我在搭建个人安全分析工作流时&#xff0c;发现单一模型很难满足所有需求。SecGPT-14B在漏洞深度分析时表现出色&#xff0c;但简单的日志筛查任务用Qwen就能快…...

Embedded Coder实战:5分钟搞定PID控制器的C代码生成(附完整配置流程)

Embedded Coder实战&#xff1a;5分钟搞定PID控制器的C代码生成&#xff08;附完整配置流程&#xff09; 在工业自动化领域&#xff0c;PID控制器就像一位不知疲倦的调节大师&#xff0c;默默维持着无数设备的稳定运行。想象一下&#xff0c;当你需要将这套经典算法部署到资源有…...

Qwen3.5-9B-AWQ-4bit部署教程:双卡RTX 4090 D显存优化与AWQ量化优势解析

Qwen3.5-9B-AWQ-4bit部署教程&#xff1a;双卡RTX 4090 D显存优化与AWQ量化优势解析 1. 模型概述 Qwen3.5-9B-AWQ-4bit是一个支持图像理解的多模态模型&#xff0c;能够结合上传图片与文字提示词&#xff0c;输出中文分析结果。这个模型特别适合处理以下任务&#xff1a; 图…...

Hive元数据存储选型避坑指南:从内置Derby到外置MySQL,生产环境配置与迁移实战

Hive元数据存储选型避坑指南&#xff1a;从内置Derby到外置MySQL&#xff0c;生产环境配置与迁移实战 在数据仓库的建设过程中&#xff0c;Hive作为Hadoop生态系统中最重要的数据仓库工具之一&#xff0c;其元数据存储的选型和配置往往决定了整个系统的稳定性和扩展性。很多团队…...