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

给定两个整数数组 preorderinorder ,其中 preorder 是二叉树的先序遍历inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。

示例 1:

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

示例 2:

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

解题思路:


链接:https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-inorder-traversal/solutions/107105/dong-hua-yan-shi-105-cong-qian-xu-yu-zhong-xu-bian/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

代码:

/*** 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* buildTree(vector<int>& preorder, vector<int>& inorder) {if (preorder.empty() || inorder.empty()) return nullptr;TreeNode * subroot = new TreeNode(preorder[0]);for(int i = 0; i < inorder.size() ; i++){if(inorder[i]==preorder[0]){vector<int> _pre(preorder.begin()+1,preorder.begin()+i+1);vector<int> pre_(preorder.begin()+i+1,preorder.end());vector<int> _in(inorder.begin(),inorder.begin()+i);vector<int> in_(inorder.begin()+i+1,inorder.end());subroot->left = buildTree(_pre,_in);subroot->right = buildTree(pre_,in_);break;}}return subroot;}
};

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

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

相关文章

使用Docker搭建Redis主从集群

文章目录 ☃️前言☃️搭建❄️❄️架构❄️❄️实例说明❄️❄️搭建第一个服务器上的两个实例❄️❄️搭建第二个服务器上的一个实例 ☃️开启主从❄️❄️改配置❄️❄️重启从节点 ☃️验证 ☃️前言 单节点 Redis 的并发能力是有上限的&#xff0c;要进一步提高Redis的并…

[大模型]TransNormerLLM-7B FastApi 部署调用

TransNormerLLM-7B FastApi 部署调用 1. TransNormer 介绍 TransNormerLLM 是一个基于线性注意力的 LLM&#xff0c;在准确性和效率方面均优于传统的基于 softmax 注意力的模型。它是在包含多达1.4 万亿个令牌的高质量语料库上进行训练的&#xff0c;TransNormerLLM 从之前的…

K-means和DBSCAN

目录 一、K-means和DBSCAN之间的主要区别 二、DBSCAN聚类算法 2.1DBSCAN聚类算法实现点集数据的聚类 2.2DBSCAN聚类算法实现鸢尾花数据集的聚类 三、K-means聚类算法 3.1K-means聚类算法实现随机数据的聚类 3.2K-means聚类算法实现鸢尾花数据集的聚类 一、K-means和DBSC…

014Node.js时间格式包silly-datetime安装与使用

下载&#xff1a; https://www.npmjs.com/网站上下载silly-datetime 安装 npm i silly-datetime --save var sd require(silly-datetime);console.log(new Date()); //2024-04-18T04:40:38.505Zvar dsd.format(new Date(), YYYY-MM-DD HH:mm);console.log(d); //2024…

idea在controller或者service使用ctrl+alt+b进入方法后,如何返回到 进入前的那一层

idea在controller或者service使用ctrlaltb进入方法后&#xff0c;如何返回到进入方法的最外层 解决方案使用 ctrlalt ← /→← /→ 键盘上的左右键盘

stm32中断发送接收数据

配置hal库 1配置时钟 2配置uart 3打开中断 程序结构 uart中断函数 中断接收和发送函数 HAL_UART_Receive_IT()&#xff1a;启动中断驱动的接收过程&#xff0c;当接收到指定数量的字节后会产生中断&#xff0c;并调用HAL_UART_RxCpltCallback()回调函数。 HAL_StatusTypeD…

STL分解

效果图 ref&#xff1a;时序数据分析的利器——STL分解 - 知乎 (zhihu.com)

2024化工制造企业数字化白皮书

来源&#xff1a;蓝凌研究院 中国石油和化学工业联合会发布2023年中国石油和化工行业经济运行情况。数据显示&#xff0c;2023年&#xff0c;我国石化行业实现营业收入15.95万亿元&#xff0c; 同比下降1.1%&#xff0c;利润总额8733.6亿元&#xff0c;行业经济运行总体呈现低…

MySQL-笔记-06.数据高级查询

目录 6.1 连接查询 6.1.1 交叉连接&#xff08;cross join&#xff09; 6.1.2 内连接&#xff08;inner join&#xff09; 6.1.3 外连接&#xff08;outer join&#xff09; 6.1.3.1 左外连接&#xff08;left [outer] join&#xff09; 6.1.3.2 右外连接&#xff08;rig…

VSCode 目录折叠展开、缩进深度设置

1、VSCode 目录折叠展开设置 运行 Visual Studio Code &#xff0c;按 Ctrl &#xff0c;打开设置 输入Explorer:Compact Folders&#xff0c;取消勾选 或者在设置文件上添加 "explorer.compactFolders": false2、VSCode 目录缩进深度设置 输入Workbench Tree:…

【C# 数据结构-队列】

在C#中&#xff0c;队列&#xff08;Queue&#xff09;是一种先进先出&#xff08;First In First Out&#xff0c;FIFO&#xff09;的数据结构&#xff0c;允许添加&#xff08;Enqueue&#xff09;和移除&#xff08;Dequeue&#xff09;元素。队列类在.NET Framework的Syste…

Navicat Premium 16最新版激活 mac/win

Navicat Premium 16 for Mac是一款专业的多连接数据库管理工具。它支持连接多种类型的数据库&#xff0c;包括MySQL、MongoDB、Oracle、SQLite、SQL Server、PostgreSQL等&#xff0c;可以同时连接多种数据库&#xff0c;帮助用户轻松地管理和迁移数据。 Navicat Premium 16 fo…

1.PROXY-代理内容

SwitchyOmega&#xff0c;浏览器插件&#xff08;edge&#xff0c;火狐插件库都是存在的&#xff09;&#xff0c;安装后的样式 1.安装 2.设置 我们常用的功能&#xff0c;主要是设置一个代理ip访问学习网站入github等&#xff0c;或者docker服务等 3.启动代理 4.验证 https…

LLMs之Llama3:Llama 3的简介、安装和使用方法、案例应用之详细攻略

LLMs之Llama3&#xff1a;Llama 3的简介、安装和使用方法、案例应用之详细攻略 导读&#xff1a;2024年4月18日&#xff0c;Meta 重磅推出了Meta Llama 3&#xff0c;本文章主要介绍了Meta推出的新的开源大语言模型Meta Llama 3。模型架构 Llama 3 是一种自回归语言模型&#x…

移动端双验证码登录实现

说明&#xff1a;本文介绍如何用图形验证码短信验证码实现移动端登录思路&#xff1b; 分析 通过手机号图形验证码手机验证码实现登录的时序图如下&#xff1a; 说明&#xff1a; &#xff08;1&#xff09;用户进入登录界面&#xff0c;出现图形验证码&#xff0c;可点击图形…

python多线程技术(Threading)

文章目录 前言一、多线程(Threading)是什么?二、threading库1.初识多线程2.增加新线程2.1 多线程的基本使用2.2 对多线程是同时进行的进行一个直观上的演示(非重点--理解是实时就行)2.3 thread.join()功能2.4 使用queue(队列)功能获取多线程的返回值(重要,这就是前面那…

浅析ARM Contex-CM3内核架构

目录 概述 1. Cortex-M3类型MCU 1.1 MCU 架构 1.2 实时性系统概念 1.3 处理器命名法 1.4 MCU的一些知识 2. Cortex-M3 概览 2.1 Cortex-M3综述 2.2 寄存器组 2.3 操作模式和特权极别 2.4 内建的嵌套向量中断控制器 2.5 存储器映射 2.6 总线接口 2.7 存储器保护单元…

SpringBoot多数据源(一)

SpringBoot多数据源&#xff08;一&#xff09; 1.多数据源使用场景1.1 业务复杂&#xff08;数据量大&#xff09;1.2 读写分离 2.多数据源配置3.应用4.测试 1.多数据源使用场景 1.1 业务复杂&#xff08;数据量大&#xff09; 简单理解就是业务量复杂&#xff0c;将庞大的数…

本地消息表模式保障分布式系统最终一致性

系统架构说明 状态转换说明 订单表消息表process_queue库存系统return_queue说明成功失败///订单库回滚成功成功失败//订单系统重发消息成功成功成功失败/Broker自动重试&#xff0c;注意接口幂等成功成功成功库存不足退回/Broker通知回掉&#xff0c;订单/消息作废成功成功成…

车轮上的智能:探索机器学习在汽车行业的应用前景

文章目录 引言&#xff1a;一、机器学习在汽车设计中的应用设计优化模拟与测试 二、智能制造与生产三、自动驾驶技术感知与决策数据融合 四、市场与模式的变革五、机器学习对于汽车行业的机遇与挑战挑战机遇 引言&#xff1a; 在当今数字化时代&#xff0c;机器学习作为人工智…