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

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

题目描述

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

class Solution {
public:TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {if(preorder.size()==0)return NULL;TreeNode* root = new TreeNode(preorder[0]);if(preorder.size()==1)return root;int index = 0;for (int i = 0; i < inorder.size(); ++i) {if(inorder[i]==preorder[0])index = i;}vector<int> leftIn(inorder.begin(), inorder.begin()+index);vector<int> rightIn(inorder.begin()+index+1, inorder.end());vector<int> leftPre(preorder.begin()+1,preorder.begin()+1+index);vector<int> rightPre(preorder.begin()+1+index,preorder.end());root->left = buildTree(leftPre,leftIn);root->right = buildTree(rightPre,rightIn);return root;}
};

小结:递归的思路也是非常清晰,C++vector切割数组真的很方便,大概思路就是先用先序集合确定根结点,再找到在中序的位置,之后切割、递归。

http://www.dtcms.com/a/191140.html

相关文章:

  • 国产ETL数据集成软件和Informatica 相比如何
  • Node.js中MongoDB连接的进阶模块化封装
  • attention_weights = torch.ones_like(prompt_embedding[:, :, 0]):切片操作获取第二维度,第三维度
  • OpenCV人脸识别LBPH算法原理、案例解析
  • BGP联邦和发射试验
  • 查询公网IP地址的方法:查看自己是不是公网ip,附内网穿透外网域名访问方案
  • python如何合并excel单元格
  • 生成式AI辅助编程目录
  • 芯片测试之Input Leakage Current(输入漏电流)Test全解析:从原理到实战
  • css 左右布局
  • REVERSE学习笔记(攻防世界xxxorrr)
  • 万文c++继承
  • AI日报 · 2025年5月14日|Android 生态大型更新与多端 Gemini 集成
  • 深度解析智能体:从概念到应用的全方位洞察
  • BGP实验2
  • 机器学习 Day16 聚类算法 ,数据降维
  • 高等数学第七章---微分方程(§7.4-§7.5可降阶的高阶微分方程、二阶线性微分方程)
  • AGI大模型(15):向量检索之调用ollama向量数据库
  • C++中如何实现一个单例模式?
  • SpringBoot--springboot配置文件详解以及简易整合MyBatis
  • 直流电机风速仪
  • 【位运算】常见算法公式使用
  • 建筑IT数字化突围:建筑设计企业的生存法则重塑
  • STM32入门笔记(05):内部高速8Mhz时钟最大时钟可以设置 64 Mhz?如何修改system_stm32f10x.c里面的代码?
  • 基于OAuth2+SpringSecurity+Jwt实现身份认证和权限管理后端服务
  • 操作系统-物理结构
  • 最大子段和(就是之前总结线性dp思想)
  • “小显存”也能启动大模型
  • libmemcached库api接口讲解三
  • 可视化图解算法39: 输出二叉树的右视图