106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode)

题目描述

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

题目示例

在这里插入图片描述

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

解题思路

在这里插入图片描述

在这里插入图片描述

参考代码

class Solution {int post_idx;int[] postorder;int[] inorder;Map<Integer, Integer> idx_map = new HashMap<>();public TreeNode buildTree(int[] inorder, int[] postorder) {this.postorder = postorder;this.inorder = inorder;// 从后序遍历的最后一个元素开始post_idx = postorder.length - 1;// 建立 元素 下标 对应的哈希表int idx = 0;for(Integer val : inorder) {idx_map.put(val, idx++);}return helper(0, inorder.length - 1);}public TreeNode helper(int in_left, int in_right) {// 如果这里没有节点构造二叉树了,就结束if(in_left > in_right) {return null;}// 选择post_idx位置的元素作为当前子树根节点int root_val = postorder[post_idx];TreeNode root = new TreeNode(root_val);// 根据root所在位置分成左右两颗子树int index = idx_map.get(root_val);// 下标减一post_idx--;// 构造右子树root.right = helper(index + 1, in_right);// 构造左子树root.left = helper(in_left, index - 1);return root;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/676141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LINUX系统备份管理

一、centos7系统备份与还原 1、使用tar命令备份 tar打包命令的特点&#xff1a; 保留权限 适合备份整个目录 可以选择不同的压缩方式 如果选择不压缩还能实现增量备份&#xff0c;部份还原&#xff0c;参考man tar 因为Linux类系统不像windows,它不会限制ROOT用户存取任…

Java高级-多线程

多线程 1.线程创建的方法1.1.方法一 继承Thread类1.2.方法二 实现Runnable接口1.3.方法三 实现Callable接口 2.线程安全2.0.线程不安全的案例2.1.方式一&#xff1a;同步代码块2.2.方式二&#xff1a;同步方法2.3.方式三&#xff1a;Lock锁 3.线程池3.1.创建线程池3.2.线程池处…

B2078 含 k 个 3 的数(洛谷)

题目描述 输入两个正整数 m 和 k&#xff0c;其中 1<m≤&#xff0c;1<k≤15 &#xff0c;判断 m 是否恰好含有 k 个 3&#xff0c;如果满足条件&#xff0c;则输出 YES&#xff0c;否则&#xff0c;输出 NO。 输入格式 输入一行&#xff0c;为两个整数 m,k&#xff0…

揭开Markdown的秘籍:标题|文字样式|列表

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;Markdown指南、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️Markdown 标题二. ⛳️Markdown 文字样式2.1 &#x1f514;斜体2.2 &…

scss和less的区别

Sass(Scss)、Less 都是 CSS 预处理器&#xff0c;他们定义了一种新的语言&#xff0c;其基本思想是&#xff0c;用一种专门的编程语言为 CSS 增加了一些编程的特性&#xff0c;将 CSS 作为目标生成文件&#xff0c;然后开发者就只要使用这种语言进行 CSS 的编码工作。 为什么要…

快速幂计算 Power Calculus

题目 照搬的题解&#xff0c;重命名了变量 ; -) now >>(maxStep-step)的目的是让剩余步数都用来自*2&#xff0c;看看能不能够到n #include <iostream> using namespace std; int maxStep,n; int nums[50];/// brief 深度遍历查找可行路径&#xff0c;用的递归&…

python智慧养老系统—养老信息服务平台vue

本论文中实现的智慧养老系统-养老信息服务平台将以管理员和用户的日常信息维护工作为主&#xff0c;主要涵盖了系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;养老资讯管理&#xff0c;养生有道管理&#xff0c;养老机构管理&#xff0c;系统管理等功能&#x…

海外云手机——平台引流的重要媒介

随着互联网的飞速发展&#xff0c;跨境电商、短视频引流以及游戏行业等领域正经历着迅猛的更新换代。在这个信息爆炸的时代&#xff0c;流量成为至关重要的资源&#xff0c;而其中引流环节更是关乎业务成功的关键。海外云手机崭露头角&#xff0c;成为这一传播过程中的重要媒介…

Grafana 配置实时开通的LDAP认证-基于AD

介绍 本教程适用于9-10版本的Grafana&#xff0c;域控&#xff08;AD&#xff09;使用Windows Server 2022搭建&#xff0c;域控等级为 2016。 域控域名为 songxwn.com 最终实现AD用户统一认证&#xff0c;统一改密&#xff0c;Grafana用户自动添加。权限由Grafana控制 全局…

Ubuntu22.04 gnome-builder gnome C 应用程序习练笔记(一)

一、序言 gnome-builder构建器是gnome程序开发的集成环境&#xff0c;支持主力语言C, C, Vala, jscript, python等&#xff0c;界面以最新的 gtk 4.12 为主力&#xff0c;将其下版本的gtk直接压入了depreciated&#xff0c;但gtk4.12与普遍使用的gtk3有很大区别&#xff0c;原…

第6章 智能租房——前期准备

学习目标 了解智能租房项目&#xff0c;能够说出项目中各模块包含的功能 熟悉智能租房项目的开发模式与运行机制&#xff0c;能够复述项目的开发模式与运行机制 掌握智能租房项目的创建&#xff0c;能够独立创建智能租房项目 掌握智能租房项目的配置&#xff0c;能够为智能租…

排序算法---堆排序

原创不易&#xff0c;转载请注明出处。欢迎点赞收藏~ 堆排序&#xff08;Heap Sort&#xff09;是一种基于二叉堆数据结构的排序算法。它将待排序的元素构建成一个最大堆&#xff08;或最小堆&#xff09;&#xff0c;然后逐步将堆顶元素与堆的最后一个元素交换位置&#xff0c…

解锁 SpringBoot 强大配置功能

1、前言 在当今的软件开发世界中&#xff0c;配置管理是至关重要的一部分。Spring框架为我们提供了多种配置方式&#xff0c;其中ConfigurationProperties和PropertySources是强大的工具&#xff0c;可以帮助我们轻松管理应用程序的配置信息。 本博客将深入探讨这两个关键注解…

求职|基于Springboot的校园求职招聘系统设计与实现(源码+数据库+文档)

校园求职招聘系统目录 目录 基于Springboot的校园求职招聘系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、企业信息管理 3、公告类型管理 4、公告信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选…

JVM-双亲委派机制

双亲委派机制定义 双亲委派机制指的是&#xff1a;当一个类加载器接收到加载类的任务时&#xff0c;会自底向上查找是否加载过&#xff0c; 再由顶向下进行加载。 详细流程 每个类加载器都有一个父类加载器。父类加载器的关系如下&#xff0c;启动类加载器没有父类加载器&am…

再谈Abel群问题

这个问题是很难的&#xff0c;因为1980年代G.Kolesnik的二变量指数和方法被认为是登封造极&#xff0c;他关于ζ(1/2it) 和 Dirichlet 除数问题的论文1982年刊登在Pacufic.J.Math.,文中列了很多无法验证的方程&#xff0c;真不知道论文怎么能发表。所以1985年意大利E.Bombieri和…

【前端素材】bootstrap5实现通用果蔬商城网页模板Netta Food(电商适用,附源码)

一、需求分析 通用果蔬商城网页是指专门为销售各类果蔬产品而设计的在线商城网页。它提供了一个方便的平台&#xff0c;使用户能够浏览、选择和购买各种果蔬产品。 通用果蔬商城网页通常具有以下功能&#xff1a; 商品展示&#xff1a;网页上展示各类果蔬产品的图片、价格、产…

「递归算法」:合并两个有序链表

一、题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出&#…

发文新思路!双流卷积!CWT-DSCNN-MSA基于时序特征、cwt小波时频图的双流卷积融合注意力机制的故障识别程序!直接运行!

适用平台&#xff1a;Matlab2023版本及以上 本程序参考中文EI期刊《电力自动化设备》2023年12月29号网络首发文献&#xff1a;《基于格拉姆角场与并行CNN的并网逆变器开关管健康诊断》,此外&#xff0c;在此基础上进一步对模型进行多重改进&#xff0c;每个人都可以构造属于自…

低代码流程引擎在数字设计平台的应用:简化创作流程,提升生产效率

数字设计平台在现代企业中发挥着重要的作用&#xff0c;它们为创作者和开发者提供了一个创新和协作的环境。然而&#xff0c;设计过程中繁琐的编码和复杂的工作流程可能降低生产效率。本文将介绍低代码流程引擎是如何应用于数字设计平台&#xff0c;以实现快速、高效的创作流程…