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

代码随想录 105.从前序与中序遍历构造二叉树

思路:

(1)本题思路同106. 从中序与后序遍历构造二叉树相同,只不过是从找后序遍历的最后一个元素在中序遍历中的位置改为找前序遍历的第一个元素在中序遍历中的位置。

(2)在本题中,需先切割中序数组,后切割后序数组。

知识点:

1.前序和中序、后序和中序遍历都可以唯一确定一棵二叉树,但前序和后序无法唯一确定一棵二叉树。

2.本题与上一题都是构造二叉树,题目难度和代码实现会略难于之前的遍历二叉树,需好好学习。

附代码:

    class Solution {Map<Integer,Integer> map;public TreeNode buildTree(int[] preorder, int[] inorder) {map = new HashMap<>();for(int i = 0;i<inorder.length;i++){map.put(inorder[i],i); //用map保存中序序列的数值对应位置}return findNode(preorder,0,preorder.length,inorder,0,inorder.length);//前闭后开规则}public TreeNode findNode(int[] preorder,int preBegin,int preEnd,int[] inorder,int inBegin,int inEnd){if(preBegin >= preEnd || inBegin >= inEnd){//不满足前闭后开,说明没有元素,返回空树return null;}int rootIndex = map.get(preorder[preBegin]); //找到前序遍历的第一个节点在中序遍历中的位置TreeNode root = new TreeNode(inorder[rootIndex]); //构造节点int lenOfLeft = rootIndex - inBegin; //保存中序左子树的个数,用于确定前序左子树的个数root.left = findNode(preorder,preBegin + 1,preBegin + lenOfLeft + 1,inorder,inBegin,rootIndex);root.right = findNode(preorder,preBegin + lenOfLeft +1,preEnd,inorder,rootIndex + 1,inEnd);return root;}
}

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

相关文章:

  • 微信网站公司用wordpress还是用框架
  • 电子电气架构 --- 汽车软件开发基础V模型
  • 国产数据库替代MongoDB的技术实践过程:金仓多模数据库在电子证照系统中的深度应用
  • 【MATLAB例程】自适应渐消卡尔曼滤波,背景为二维雷达目标跟踪,基于扩展卡尔曼(EKF)|附完整代码的下载链接
  • 【开题答辩全过程】以 博客系统的设计与实现为例,包含答辩的问题和答案
  • 基于 OpenHarmony 分布式数据服务重构 BCI 脑机接口通信系统
  • 投资交易网站开发商标图案大全大图 logo
  • 甘肃住房和城乡建设局网站宁波公司建网站哪家好
  • LangChain第三页【操作指南】_【如何创建一个自定义对话模型类】翻译完成
  • 专题:2025AI+直播+私域电商行业洞察报告|附200+份报告PDF、数据仪表盘汇总下载
  • 贝锐蒲公英R300S升级:内置三网通卡,联通、电信、移动智能切换
  • 拼接显示技术方案介绍:重塑视觉体验,赋能多元场景
  • 个人博客网站的建设结构图域名解析后怎么建网站
  • python做网站项目购物平台推荐
  • C语言需要掌握的基础知识点之链表
  • 学习Docker前提:多环境安装Docker
  • SpringBoot实战(三十九)集成 FreeMarker
  • 除自身以外数组的乘积(二)
  • 指针数组和指针数组区别
  • 怎么用云主机做网站天津市建设厅注册中心网站
  • flutter使用getx做一个todolist
  • 威海市住房和城乡建设局官方网站广东省公路建设有限公司网站
  • 5.深度学习:从Softmax到模型评估
  • 吴恩达深度学习课程一:神经网络和深度学习 第三周:浅层神经网络(二)
  • 在优豆云免费云服务器上搭建与配置Apache的实践笔记
  • 网站开发设计是前端吗伯维网站建设
  • 成都seo优化公司搜素引擎优化
  • Cesium中的倒立四棱锥:从几何结构到交互式3D可视化
  • 从传统架构到云原生,如何应对数据增长挑战?
  • Extreme Views 的3DGS!