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

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

  • 中序遍历序列存放节点的顺序是左中右,后序遍历存放节点的顺序是左右中
  • 后序遍历序列的最后一个节点即为二叉树的根节点
  • 由于每个值在二叉树中都是唯一的,那么根据根节点的值,就可以将中序遍历序列一分为二,前部分存储的是根节点左子树的节点,后半部分存储的是根节点右子树的节点
  • 不论中序还是后序遍历,左右子树的节点是相同的,那么就可以将两个序列划分为四个序列,中序遍历序列的左右部分,后序遍历序列的左右部分
  • 那么此时,以根节点的值构造根节点,根节点的左子节点,就可以以中序遍历序列的左部分和后序遍历序列的左部分进行构造,右子节点同理
  • 那么递归下去,就能够构造完成整棵二叉树
  • : 在实现时,对 inorderleft 等四个数组未进行初始化,规定数组的大小,此时是无法 inorderleft[i] = inorder[i]; 这样去赋值的。
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:TreeNode* subVec(vector<int> inorder, vector<int> postorder){if(inorder.empty() && postorder.empty()){return nullptr;}TreeNode* root = new TreeNode(postorder[postorder.size() - 1]);if(postorder.size() == 1){return root;}int flag = 0;for(flag; flag < inorder.size(); flag++){if(inorder[flag] == root->val){break;}}vector<int> inorderleft;vector<int> inorderright;vector<int> postorderleft;vector<int> postorderright;for(int i = 0; i < flag; i++){inorderleft.push_back(inorder[i]);postorderleft.push_back(postorder[i]);}for(int j = flag; j + 1 < inorder.size(); j++){inorderright.push_back(inorder[j + 1]);postorderright.push_back(postorder[j]);}root->left = subVec(inorderleft, postorderleft);root->right = subVec(inorderright, postorderright);return root;}TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {TreeNode* root = subVec(inorder, postorder);return root;}
};

相关文章:

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

中序遍历序列存放节点的顺序是左中右&#xff0c;后序遍历存放节点的顺序是左右中后序遍历序列的最后一个节点即为二叉树的根节点由于每个值在二叉树中都是唯一的&#xff0c;那么根据根节点的值&#xff0c;就可以将中序遍历序列一分为二&#xff0c;前部分存储的是根节点左子…...

操作系统期末复习(大题)

1. 进程调度 周转时间作业完成时刻-作业到达时刻 带权周转时间周转时间/服务时间 平均周转时间各个作业周转时间之和/作业个数 操作系统&#xff1a;周转时间和其他时间_系统为作业提供的时间-CSDN博客 2. 进程调度 3. 调度算法 4. 临界区互斥访问问题 即证明是否满足互斥&a…...

解决富文本中抖音视频无法播放的问题——403

问题 富文本中的抖音视频无法播放&#xff0c;资源状态码是403禁止访问打开控制台&#xff0c;可以看到在项目中打开&#xff0c;数据请求的请求头多了一个Referer: http://localhost:3000/而复制链接在新窗口直接打开&#xff0c;请求头中并不会携带Referer 解决方案 在ind…...

2024最新华为OD机试(C卷+D卷)真题目录+使用说明+在线评测

文章目录 &#x1f4d2;声明&#x1f39a;专栏介绍&#x1f4d6;试读文章&#x1f380;关于华为OD &#x1f9f7;真题目录2024最新 C卷 & D卷 目录(实时跟新中~)2024最新 C卷 & D卷 100分题目 (实时跟新中~)2024最新 C卷 & D卷 200分题目 (实时跟新中~) &#x1f4…...

hana 中的缓存视图功能,类似ORACLE 中的 物化视图功能

为什么启用物化视图、缓存视图这里就不过多解释了。 参考官方文章&#xff1a; Static Result Cache | SAP Help Portal 在 HANA中&#xff0c;视图的缓存分 静态结果缓存 和 动态结果缓存。 静态结果缓存和动态结果缓存是缓存查询结果以获得性能优势的可配置应用程序。 缓…...

express入门02静态资源托管

目录 1 搭建静态资源结构2 代码助手3 多目录托管4 服务器热启动总结 上一篇我们讲解了使用express搭建服务器的过程&#xff0c;服务器搭建好了之后&#xff0c;除了在地址栏里输入URL发起get请求或者post请求外&#xff0c;通常我们还需要访问静态资源&#xff0c;比如html、c…...

Java常见的引用类型

1、强引用&#xff1a;普通的变量引用&#xff0c;Student sutnew Student(); 2、软引用&#xff1a;堆内对象若未被引用&#xff0c;GC不会立刻删除&#xff0c;而是在堆内存空间不足时才会进行删除。 3、弱引用&#xff1a;GC触发&#xff0c;会立刻删除。 4、虚引用&am…...

使用易备数据备份软件,简单快速地备份 Oracle 数据库

易备数据备份软件能够以简单高效的方式&#xff0c;实现对 Oracle 数据库的保护。 易备数据备份软件数据库备份功能的关键特性 自动保护网站数据库及应用程序实时备份&#xff0c;不需要任何中断或数据库锁定基于日期和时间的备份任务计划可恢复到一个已存在的数据库或创建一…...

基于SSM+Jsp的交通事故档案管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…...

深度解析:ChatGPT全面测评——功能、性能与用户体验全景剖析

从去年底至今&#xff0c;由 OpenAI 发布的大规模语言模型 ChatGPT 引发了几乎所有科技领域从业者的高度关注。据瑞银集团的报告显示&#xff0c;自 2023 年 1 月起&#xff0c;仅两个月内&#xff0c;ChatGPT 的月活用户数便超过了 1 亿。 ChatGPT 被誉为“最强 AI”&#xff…...

领夹麦克风哪个品牌好?哪个麦克风好?揭秘无线麦克风十大排名!

​无线领夹麦克风因其便携性和高音质而备受青睐。今天&#xff0c;我要为大家推荐几款备受赞誉的无线领夹麦克风&#xff0c;它们不仅在音质上表现出色&#xff0c;更在设计和性能上各有千秋。这些麦克风不仅适合专业录音师使用&#xff0c;也适合普通用户在日常生活中的各种场…...

低代码开发:智能财务系统开发应用

在当今数字化时代&#xff0c;企业对于高效的财务管理系统需求日益增长。低代码开发平台为开发智能财务系统提供了快速、灵活的解决方案&#xff0c;使企业能够快速构建、定制和部署应用程序&#xff0c;提升财务管理效率。本文将探讨低代码开发在智能财务系统开发应用中的应用…...

Windows 10 找不到Microsoft Edge 浏览器

下载链接 了解 Microsoft Edge 手动下载浏览器 问题说明 一般来说&#xff0c;windows10系统应该是自带浏览器edge的&#xff0c;但有的电脑就是没有找到edge浏览器&#xff0c;可能系统是精简过的&#xff0c;可能是被卸载了。如下&#xff0c;控制面板确实没找到程序。 ​ …...

【react】useState 使用指南

React的useState是函数组件中用于管理状态(state)的Hook。以下是关于useState的使用指南,结合参考文章中的信息,以清晰、分点的方式表示: 1. 基本概念 useState是React函数组件中用于管理状态(state)的Hook。它接受一个初始状态值,并返回一个包含当前状态和一个用于更新…...

RK3588 Debian11进行源码编译安装Pyqt5

RK3588 Debian11进行源码编译安装Pyqt5 参考链接 https://blog.csdn.net/qq_38184409/article/details/137047584?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171808774816800222841743%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&…...

二叉树的前序遍历-力扣

二叉树的前序遍历&#xff0c;指先遍历中间节点&#xff0c;然后遍历左节点&#xff0c;然后遍历右节点&#xff0c;按照这个顺序进行递归即可。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* …...

千问Qwen7B chat:本地部署及网页端使用

基于前面的安装经验&#xff0c;千问大模型的本地部署并不算难&#xff0c;主要时间用在大模型文件的下载上。同时系统运行对硬件也有较高的要求&#xff0c;本机的硬件配置为N卡3060&#xff0c;显存12G。 使用conda创建虚拟环境&#xff0c;主要版本如下&#xff1a; Pyth…...

(27)ADC接口--->(002)FPGA实现AD7606接口

(002)FPGA实现AD7606接口 1 目录 (a)FPGA简介 (b)IC简介 (c)Verilog简介 (d)FPGA实现AD7606接口 (e)结束 1 FPGA简介 (a)FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。…...

设计模式-设计模式分类

概述 23 种设计模式&#xff0c;分为创建型模式、结构型模式和行为型模式。另外&#xff0c;近来这一清单又增加了一些类别&#xff0c;例如&#xff0c;并发型模式、线程池模式、Java EE 企业技术的多层应用程序上的模式等。 一、创建型模式 1.工厂方法模式(Factory Method…...

重邮计算机网络803-(1)概述

目录 一.计算机网络向用户提供的最重要的功能 二.互联网概述 1.网络的网络 2.计算机网络的概念 3. 互联网发展的三个阶段 4.制订互联网的正式标准要经过以下的四个阶段 5.互联网的组成&#xff08;功能&#xff09; 6.互联网功能 7.互联网的组成&#xff08;物理&…...

党史馆3d网上展馆

在数字化浪潮的推动下&#xff0c;华锐视点运用实时互动三维引擎技术&#xff0c;为用户带来前所未有的场景搭建体验。那就是领先于同行业的线上三维云展编辑平台搭建编辑器&#xff0c;具有零基础、低门槛、低成本等特点&#xff0c;让您轻松在数字化世界中搭建真实世界的仿真…...

小心人工智障

最近gpt用的有点多 基本上centos命令都懒得自己动脑&#xff0c;直接把需求给gpt然后cv命令就用了事实证明还是需要自己盯一盯的&#xff0c;今天我想给新服务器配置一下环境&#xff0c;下个maven&#xff0c;给了他现在官网最新的版本号&#xff0c;他给我修正好的下载命令&a…...

[AIGC] 自定义Spring Boot中BigDecimal的序列化方式

在很多场景下&#xff0c;我们需要对BigDecimal类型的数据进行特殊处理&#xff0c;比如保留三位小数。Spring Boot使用Jackson作为默认的JSON序列化工具&#xff0c;我们可以通过自定义Jackson的序列化器&#xff08;Serializer&#xff09;来实现&#xff0c;下面将详细介绍实…...

ubuntu20.04设置文件开机自启动

硬件&#xff1a;树霉派4B 系统&#xff1a;ubuntu20.04 在ubuntu20.04上经常需要运行 ./BluetoothServerParse_L.c ,比较繁琐&#xff0c;想要设置开机自启动&#xff0c;让树霉派4B在接上电源之后就自动运行该程序。使用systemd服务&#xff0c;设置步骤如下&#xff1a; &…...

盛水最多的容器

class Solution { public:int maxArea(vector<int>& height) {int l0,rheight.size()-1;int ans0;while(l<r){int areamin(height[l],height[r])*(r-l);ansmax(area,ans);if(height[l]<height[r]){l;}else{--r;}}return ans;} };...

PCIe——学习计划

学习计划 第1周&#xff1a;基础知识和总览 目标&#xff1a;了解计算机架构基础&#xff0c;总线系统概述以及 PCIe 的基础知识。内容&#xff1a; 计算机体系结构基础总线系统概述PCIe 的发展历史和基本概念 第2-3周&#xff1a;PCIe 体系结构 目标&#xff1a;理解 PCI…...

使用 TinyEngine 低代码引擎实现三方物料集成

本文由体验技术团队 TinyEngine 项目成员炽凌创作&#xff0c;欢迎大家实操体验&#xff0c;本体验内容基于 TinyEngine 低代码引擎提供的环境&#xff0c;介绍了如何通过 TinyEngine 低代码引擎实现三方物料集成&#xff0c;帮助开发者快速开发。 知识背景 1.1 TinyEngine 低…...

武汉理工大学云计算与服务计算——7.容器技术习题

1&#xff0e;容器的概念及与虚拟机的区别。 容器是一种轻量级的操作系统层面的虚拟化技术&#xff0c;它为应用软件及其依赖组件提供一个独立的运行环境&#xff0c;与其他容器和宿主机环境隔离。容器共享宿主机的操作系统内核&#xff0c;无需为每个容器单独安装操作系统&am…...

idea项目启动报错org/springframework/cloud/client/circuitbreaker/Customizer

文章目录 报错 java.lang.IllegalStateException: Error processing condition on org.springframework.cloud.client.CommonsClientAutoConfiguration$DiscoveryLoadBalancerConfiguration.discoveryCompositeHealthContributor继续报错 Caused by: java.lang.NoClassDefFound…...

贪 吃 蛇

简介 简易贪吃蛇&#xff0c;使用 javax.swing 组件构建游戏界面&#xff0c;通过监听键盘按键实现游戏操纵。 功能设计 按1 - 开始游戏按2 - 重新开始按3 - 暂停/继续按Esc-退出游戏统计吃到的苹果个数&#xff08;得分&#xff09;难度控制&#xff0c;得分超过阈值时难度…...

旅游景点网站模板/交换友情链接的好处

一.极坐标图&#xff1a;polar(theta,rho,s) theta为极坐标图形的角度&#xff0c;rho为极半径&#xff0c;s为图形的形状 theta 0:pi/20:4*pi; rho 1 theta*2; polar(theta,rho,g); title(Polar plot of 1theta*2 );玫瑰线绘制&#xff1a; theta 0:0.001:2*pi; rho cos…...

织梦教育培训网站源码/杭州搜索引擎排名

SQL的组成部分 DML Data Manipulation Language数据的增删改DDL Data Definition language库或表的增删改DCL Data Control Language用户的创建、授权TCL Transaction Control Language事务控制&#xff08;Oracle&#xff09;DQL Data Query Language数据查询&#xff08;MyS…...

部门门户网站建设请示/关键词搜索广告

不啰嗦&#xff0c;直接复制工具类 /*** 在windows和linux系统下均可正常使用* Create by ysterfoxmail.com 2018/6/6/006 14:51*/ public class ProjectPath {//获取项目的根路径public final static String classPath;static {//获取的是classpath路径&#xff0c;适用于读取…...

做网站的公司创业/北京seo公司工作

在读文件时&#xff0c;有的时候我们想一条数据一条数据地读&#xff0c;比如文件中每一行数据是一条数据&#xff0c;我们就要按行读取&#xff1a; ​public static void main(String[] args){File readFile new File("C:\\wyh\\it\\java");File writeFile new …...

可视化的做网站的app/2023年6月疫情情况

查看是否安装apache[rootwxb ~]# rpm -qa | grep httpd查看正在跑的进程并杀掉[rootwxb ~]# ps -ef | grep dhcp[rootwxb ~]# kill -9 1775搜索与httpd有关[rootwxb ~]# yum search httpd安装apache软件包&#xff1a;&#xff08;由apache http server看到apache的安装包为htt…...

外贸建站seo/沈阳网站优化

一.常见的转义字符 转移字符对应的英文是escape character , 转义字符串&#xff08;Escape Sequence&#xff09; 字母前面加上捺斜线"“来表示常见的那些不能显示的ASCII字符.称为转义字符.如\0,\t,\n等&#xff0c;就称为转义字符&#xff0c;因为后面的字符&#xff…...