树和二叉树_6

devtools/2025/2/9 5:09:11/

树和二叉树_6

  • 一、leetcode-105
  • 二、题解
    • 1.引库
    • 2.代码


一、leetcode-105

从前序与中序遍历序列构造二叉树
给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。
请添加图片描述
样例输入:preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]

样例输出: [3,9,20,null,null,15,7]


二、题解

1.引库

 #include <iostream>#include <cstdio>#include <cstdlib>#include <queue>#include <stack>#include <algorithm>#include <string>#include <map>#include <set>#include <vector>using namespace std;

2.代码

/*** 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.size()==0) return NULL;int pos=0,n=preorder.size();while(inorder[pos]!=preorder[0]) pos++;TreeNode *root=new TreeNode(preorder[0]);vector<int> preArr,inArr;for(int i=1;i<=pos;i++) preArr.push_back(preorder[i]);for(int i=0;i<pos;i++) inArr.push_back(inorder[i]);root->left=buildTree(preArr,inArr);preArr.clear(),inArr.clear();for(int i=pos+1;i<n;i++) preArr.push_back(preorder[i]);for(int i=pos+1;i<n;i++) inArr.push_back(inorder[i]);root->right=buildTree(preArr,inArr);return root;}
};

http://www.ppmy.cn/devtools/157257.html

相关文章

Postman接口测试:全局变量/接口关联/加密/解密

全局变量和环境变量 全局变量&#xff1a;在postman全局生效的变量&#xff0c;全局唯一 环境变量&#xff1a;在特定环境下生效的变量&#xff0c;本环境内唯一 设置&#xff1a; 全局变量&#xff1a; pm.globals.set("variable_key", "variable_value1&q…

maven详细讲解

学习目标 那什么是mavenmaven概念以及核心思想maven构建的生命周期、阶段以及目标maven仓库有哪些&#xff1f;maven依赖 那什么是maven&#xff1f;maven概念以及核心思想&#xff0c;maven构建的生命周期、阶段以及目标&#xff1f; 那什么是maven Maven是一个项目管理和构建…

gitlab个别服务无法启动可能原因

目录 一、gitlab的puma服务一直重启 1. 查看日志 2. 检查配置文件 3. 重新配置和重启 GitLab 4. 检查系统资源 5. 检查依赖和服务状态 6. 清理和优化 7. 升级 GitLab 8. 查看社区和文档 二、 gitlab个别服务无法启动可能原因 1.服务器内存或磁盘已满 2.puma端口冲突…

http cookie的作用学习

1.介绍 HTTP Cookie 是 服务器发送给客户端&#xff08;浏览器&#xff09;的一小段数据&#xff0c;它会被客户端存储&#xff0c;并在后续请求时自动携带&#xff0c;以便服务器识别用户、保持会话状态或存储用户偏好等信息。 流程&#xff1a; 服务器发送 Cookie 服务器…

基于SpringBoot+vue高效旅游管理系统

Spring Boot后端与Vue前端融合&#xff1a;构建高效旅游管理系统 目录 一、项目简介 二、开发技术与环境配置 2.1 SpringBoot框架 2.2 Java语言简介 2.3 Vue的介绍 2.4 mysql数据库介绍 2.5 B/S架构 三、系统功能实现 四、系统项目截图 登录页面 后台管理页面 用户…

SpringBoot3 + Jedis5 + Redis集群 如何通过scan方法分页获取所有keys

背景: 由于需要升级老项目代码&#xff0c;从SpringBoot1.5.x 升级到 SpringBoot3.3.x&#xff0c;框架中引用的Jedis自动升级到了 5.x&#xff1b;正好代码中有需要获取Redis集群的所有keys的需求存在&#xff1b;代码就不适用了&#xff0c;修改如下&#xff1a; POM 由于…

pandas+openpyxl处理Excel

1. 读取多个 Excel 文件并合并 假设你有一个文件夹&#xff0c;里面包含多个 Excel 文件&#xff0c;你想将这些文件合并成一个 DataFrame。 import pandas as pd import os # 文件夹路径 folder_path path/to/your/excel/files # 获取文件夹中的所有 Excel 文件 excel_file…

【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter2-HTML 中的 JavaScript

二、HTML 中的 JavaScript 将 JavaScript 插入 HTML 的主要方法是使用<script>元素。 <script>元素有下列 8 个属性。 async&#xff1a;可选。表示应该立即开始下载脚本&#xff0c;但不能阻止其他页面动作&#xff0c;比如下载资源或等待其他脚本加载。只对外部…