leetcode 105. 从前序与中序遍历序列构造二叉树
2023.10.21

本题需要根据前序遍历序列和中序遍历序列来构造出一颗二叉树。类似于从中序与后序遍历序列构造二叉树 。使用递归, java代码如下:
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
class Solution {public TreeNode buildTree(int[] preorder, int[] inorder) {if(inorder.length == 0) return null;int rootValue = preorder[0];TreeNode root = new TreeNode(rootValue);if(inorder.length == 1) return root;//找到中序遍历的切割点int seg = 0;for(int i=0; i<inorder.length; i++){if(inorder[i] == rootValue){seg = i;break;}}int[] in_left = Arrays.copyOfRange(inorder,0,seg);int[] in_right = Arrays.copyOfRange(inorder,seg+1,preorder.length);preorder = Arrays.copyOfRange(preorder,1,preorder.length);//去掉第一个元素,也就是根节点的值int[] pre_left = Arrays.copyOfRange(preorder,0,in_left.length);int[] pre_right = Arrays.copyOfRange(preorder,in_left.length,preorder.length);//递归处理左右子树root.left = buildTree(pre_left,in_left);root.right = buildTree(pre_right,in_right);return root;}
}
相关文章:
leetcode 105. 从前序与中序遍历序列构造二叉树
2023.10.21 本题需要根据前序遍历序列和中序遍历序列来构造出一颗二叉树。类似于从中序与后序遍历序列构造二叉树 。使用递归, java代码如下: /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* …...
【试题039】 多个逻辑或例题
题目:设int n;,执行表达式(n0)||(n1)||(n2)||(n3)后,n的值是?代码分析: //设int n; , 执行表达式(n 0) || (n 1) ||(n 2) ||(n 3)后, n的值是?int n;printf("n%d\n", (n 0) || (n 1) || (n 2) || (n 3));//分析࿱…...
打卡go学习第一天
8.1 下面展示一些 代码。 package mainimport ("fmt""net""os""time" )type Clock struct {Name stringAddr string } func main() {clocks : []Clock{{Name: "New York", Addr: "localhost:8000"…...
julia 笔记: 流程控制
1 复合表达式 用一个表达式有序地计算若干子表达式,并返回最后一个子表达式的值 1.1 begin代码块 z beginx 1y 2x yend z #3begin x 1; y 2; x y end #3 1.2 ;链 (x 1; y 2; x y) #3(x 1; y 2; x y) 3 2 条件表达式 x1 y2if x < yprintln(&q…...
【c++】 跟webrtc学周期性任务:tgcalls 5 网络超时检查
tgcalls 网络超时检查 G:\CDN\P2P-DEV\tdesktop-offical\Telegram\ThirdParty\tgcalls\tgcalls\NetworkManager.cppPostDelayedTask 使用的是rtc thread 方法 PostDelayedTask :G:\CDN\P2P-DEV\Libraries\tg_owt\src\rtc_base\thread.htemplate <class Closure,typename st…...
面试算法33:变位词组
题目 给定一组单词,请将它们按照变位词分组。例如,输入一组单词[“eat”,“tea”,“tan”,“ate”,“nat”,“bat”],这组单词可以分成3组,分别是[“eat”,“…...
【C语言】每日一题(旋转数组)
旋转数组,链接奉上 目录 方法:创建额外的数组:整体思路:代码实现: 数组反转:整体思路:代码实现:小插曲: 方法: 创建额外的数组: 整体思路: 创建一个额外的…...
系统架构师考试科目一:综合知识
某软件公司欲开发一个 Windows 平台上的公告板系统。在明确用户需求后,该公司的 架构师决定采用 Command 模式实现该系统的界面显示部分,并设计 UML 类图如下 图所示。图中与 Command 模式中的 Invoker 角色相对应的类是( ) ,与 ConcreteComm…...
面向对象与面向过程讲解
目录 简介 面向过程编程(Procedural Programming) 什么是面向过程编程? 特点: 面向对象编程(Object-Oriented Programming) 什么是面向对象编程? 特点: 面向对象 vs. 面向过程…...
【SA8295P 源码分析 (四)】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解析
【SA8295P 源码分析】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解析 系列文章汇总见:《【SA8295P 源码分析 (四)】网络模块 文章链接汇总 - 持续更新中》 本文链接:《【SA8295P 源码分析 (四)】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解…...
Python【list列表去重】
目录 要求: 将list中的重复数据去重,至少使用两种方案 方案一: 方案二: 要求: 将list中的重复数据去重,至少使用两种方案 方案一: 使用set ,可以将list转换为set࿰…...
Leetcode——字符
520. 检测大写字母 class Solution { public:bool detectCapitalUse(string word) {int big 0, small 0, len word.length();for (int i 0; i < len; i) {if (word[i] > 65 && word[i] < 90) {big;}else {small;}}if (big len || small len) {return tr…...
深入解析docker内核网桥
今天做虚拟桌面,朋友问我,为什么vnc 连接另一个docker 容器一直超时,原因是在docker 启动的时候没有组网,那么接下来我就要解析下docker的内核网络。 我们思考几个问题,带你了解linux 中docker 网络实现的基本原理。 文…...
ubuntu18.04服务器双网口配置上外网
记录一下配置服务器过程,本以为简单,结果整了一天。 服务器有2个网口,网口2是用来上外网的,原来用的01-netcfg.yaml进行ip地址设置,主要就用2条命令: vi /etc/netplan/01-netcfg.yaml (打开后…...
【安全体系架构】——防御深度架构
防御深度架构: 防御深度架构是一种多层次的安全模型,旨在通过在网络和系统的各个层次上部署多个安全措施,以抵御不同类型的威胁和攻击。这个模型承认单一的安全措施可能无法全面防御所有潜在威胁,因此采用了多层次的安全防御策略…...
Opencv之RANSAC算法用于直线拟合及特征点集匹配详解
Opencv之RANSAC算法用于直线拟合及特征点集匹配详解 讲述Ransac拟合与最小二乘在曲线拟合上的优缺点 讲述在进行特征点匹配时,最近邻匹配与Ransac匹配的不同之处 另外,Ransac也被用于椭圆拟合、变换矩阵求解等 1. 直线拟合 1.1 原理 RANSAC(RANdom …...
Jenkins环境部署与任务构建
一、CI/CD 1、CI/CD 概念: CI/CD 是一种软件开发和交付方法,旨在加速应用程序的开发、测试和部署过程,以提高软件交付的质量和效率。 (1) 持续集成 (CI Continuous Integration): 持续集成是开发团队频繁集成其代码更改的过程。开发者将其…...
ES6 Class和Class继承
1.class的基本语法 class可以理解为是一个语法糖,将js只能通过构造函数创建实例的方法进行了补充 构造函数: function Person ({ name, age18 }) {this.name namethis.age age } new Person({name: 张三}) Class类: class Person {con…...
C++11 packaged_task
std::packaged_task 把一个方法打包成一个task扔到线程中执行,然后通过packaged_task中的furture等待执行结果。 void test_promise() {std::packaged_task <int()> task([]()->int {std::cout << "packaged_task begin \n" << std…...
delete、drop、truncate三兄弟
比较方面/具体命令deletetruncatedrop删除范围逐行删除(记录行)逐页删除(数据页)整张表(数据表结构)所属范畴数据操作语言(DML)数据定义语言(DDL)数据定义语言…...
小晓AI标书精灵构建企业级招投标智能体:基于Spring AI与LangGraph的架构实践
背景:从自动化到智能化的代际跨越在数字化转型的深水区,招投标行业正面临从“电子化流程”向“智能化决策”的范式转移。传统的标书制作往往受困于非结构化数据的处理瓶颈、长文档的逻辑一致性维护以及严苛的合规性要求。小晓AI标书精灵的此次重磅升级&a…...
【学员故事】源源:从无人听到争相咨询,学习毛丫讲绘本,托育园招生很顺利
我来自江苏无锡,是一名托育机构的创办者和老师。在早期办学过程中,我和许多从业者一样,面临着如何提升课程吸引力、获得家长认可的难题。曾经我也认为家长只关心孩子的照护问题,课程内容并不重要。直到我开始专注于绘本教学&#…...
ngx_process_get_status
1 定义 ngx_process_get_status 函数 定义在 ./nginx-1.24.0/src/os/unix/ngx_process.cstatic void ngx_process_get_status(void) {int status;char *process;ngx_pid_t pid;ngx_err_t err;ngx_int_t i;ngx_uint_t one;o…...
工业视觉检测:OpenCV FPS 正确计算的方式
工业视觉检测:OpenCV FPS 计算正确姿势 别再被 cap.get(cv2.CAP_PROP_FPS) 骗了!“为什么我用 OpenCV 读相机,get(CAP_PROP_FPS) 返回 0?” “视频文件能拿到帧率,但工业相机就是不行!” “我的算法明明很快…...
GDELT数据库能做什么?5个意想不到的数据分析项目灵感(附Python代码片段)
GDELT数据库能做什么?5个意想不到的数据分析项目灵感(附Python代码片段) 如果你对全球新闻数据感兴趣,GDELT数据库绝对是一个值得探索的宝藏。这个庞大的数据库实时监控全球新闻媒体,记录事件、情感、人物关系等多维度…...
**发散创新:基于Rust的内存安全加固技术实战解析**在现代软件开发中,**内存安全漏洞**(如缓冲区溢出、空指针解引用等)仍然是
发散创新:基于Rust的内存安全加固技术实战解析 在现代软件开发中,内存安全漏洞(如缓冲区溢出、空指针解引用等)仍然是导致系统崩溃甚至远程代码执行的核心风险源。传统C/C语言因缺乏运行时保护机制,常成为攻击者的首选…...
保姆级教程:用K210+MaixPy IDE从零搭建人脸识别系统(含模型获取与代码烧录避坑指南)
从零玩转K210人脸识别:模型训练到代码实战全解析 第一次拿到K210开发板时,我被它小巧的体积和"AIoT"的宣传标语所吸引,但真正开始动手搭建人脸识别系统时,才发现从模型获取到代码烧录的每一步都可能成为新手路上的绊脚…...
RAG基本流程
RAG(Retrieval-Augmented Generation,检索增强生成)是一种将外部知识检索与大语言模型(LLM)生成能力相结合的技术,用于提升回答的准确性、减少“幻觉”(Hallucination),并…...
【CH376实战】STM32模拟SPI驱动U盘文件系统,告别复杂FAT底层
1. 为什么选择CH376STM32方案 在嵌入式开发中实现U盘文件操作,传统方案通常需要开发者深入理解FAT32/exFAT等文件系统协议栈。我曾在一个智能仪表项目中被FAT底层代码折磨得够呛——光是处理长文件名和簇链遍历就消耗了整整两周时间。直到发现沁恒的CH376这颗神器芯…...
Boss-Key:Windows终极隐私保护工具,一键隐藏窗口的办公神器
Boss-Key:Windows终极隐私保护工具,一键隐藏窗口的办公神器 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在当今…...
