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

汇赢网站建设dw如何制作网页

汇赢网站建设,dw如何制作网页,wordpress文章隐藏,网站策划书的内容目录 从前序与中序遍历序列构造二叉树从中序与后序遍历序列构造二叉树 从前序与中序遍历序列构造二叉树 题目链接 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返…

目录

  • 从前序与中序遍历序列构造二叉树
  • 从中序与后序遍历序列构造二叉树

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


题目链接

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

实例1:
在这里插入图片描述

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

首先我们应该明白,
前序遍历就是,先遍历根节点,然后遍历左子树,最后遍历右子树
中序遍历就是,先遍历左子树,然后遍历根节点,最后遍历右子树
后续遍历就是,先遍历左子树,然后遍历右子树,最后遍历根节点

首先我们先试着用前序与中序遍历序列构造一棵二叉树
在这里插入图片描述


给出前序遍历数列 preorder 和 中序遍历数列 inorder
我们知道前序遍历二叉树必然先走根节点,所以我们可知preorder序列中的第一个数字3即为二叉树的根节点,中序遍历数列中,左子树必然先于右子树遍历,所以我们可知,在中序遍历数列inorder中的使用根节点将inorder划分为三个区间,(左子树)根(右子树),根节点3左边的元素为左子树,3右边的元素为右子树

在这里插入图片描述

现在3的左子树为空,右子树(15,20,7)继续使用相同方法构造二叉树
在这里插入图片描述

代码:

采用递归调用,分解子问题的方法

class Solution {
public:TreeNode* build(vector<int>& preorder,vector<int>& inorder,int& prev,int inbegin,int inend){	//perorder 前序遍历序列,inorder 中序遍历序列,prev 指向前序遍历数列下标if(inbegin>inend)return NULL;//当前的根节点TreeNode* root=new TreeNode(preorder[prev]);int rooti=inbegin; //用来查找根节点在数组中的下班位置while(rooti<inend){if(inorder[rooti]==preorder[prev])break;rooti++;}prev++;  //每次使用完prev需往后走,prev指的是数组前序遍历中用来判断根节点的//划分区间,(左子树,根)根(根,右子树)// (inbegin,rooti-1)rooti(rooti+1,inend)//函数递归继续构造二叉树的左右节点root->left=build(preorder,inorder,prev,inbegin,rooti-1); root->right=build(preorder,inorder,prev,rooti+1,inend);return root;}TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {int i=0;TreeNode* root=build(preorder,inorder,i,0,inorder.size()-1);return root;}
};

从中序与后序遍历序列构造二叉树


题目链接

给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。

实例1:

在这里插入图片描述

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

使用中序与后序遍历序列构造二叉树 思路根前序与中序序列构造二叉树相似

在这里插入图片描述
给出二叉树的中序遍历inorder 和 后续遍历 postorder

我们知道后续遍历二叉树,根节点最后遍历,所以我们可知postorder序列中的最后一个元素3即为二叉树的根节点,中序遍历数列中,左子树优于根先遍历,右子树后于根遍历,所以我们可以根据这两个条件将inorder序列划分为三个区间,(左子树)根(右子树),根节点3左边的元素为左子树,3右边的元素为右子树
在这里插入图片描述

3的左子树序列只剩一个,即为3的左节点,右子树序列还有三个元素,需要继续划分,重复上述过程
在这里插入图片描述

代码:

class Solution {
public:TreeNode* build(vector<int>& inorder, vector<int>& postorder,int& prev,int inbegin,int inend){if(inbegin>inend)return NULL;TreeNode* root=new TreeNode(postorder[prev]);int rooti=inbegin;while(rooti<inend){if(postorder[prev]==inorder[rooti])break;rooti++;}prev--;//  (左,根)根(根,右)//先构造右子树,再构造左子树root->right=build(inorder,postorder,prev,rooti+1,inend);root->left=build(inorder,postorder,prev,inbegin,rooti-1);return root;}TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {int i=postorder.size()-1;TreeNode* root=build(inorder,postorder,i,0,postorder.size()-1);return root;}
};

文章转载自:
http://wanjiaprejudicial.Lgnz.cn
http://wanjiadecussate.Lgnz.cn
http://wanjiaocclusal.Lgnz.cn
http://wanjiastonehearted.Lgnz.cn
http://wanjiashlepper.Lgnz.cn
http://wanjiaexhaustion.Lgnz.cn
http://wanjiadistributee.Lgnz.cn
http://wanjiapackman.Lgnz.cn
http://wanjiapropagator.Lgnz.cn
http://wanjiahearten.Lgnz.cn
http://wanjiapolyvinylidene.Lgnz.cn
http://wanjiaruling.Lgnz.cn
http://wanjiastandby.Lgnz.cn
http://wanjiapericles.Lgnz.cn
http://wanjialespedeza.Lgnz.cn
http://wanjiaairwoman.Lgnz.cn
http://wanjiahyposensitize.Lgnz.cn
http://wanjiacornhusker.Lgnz.cn
http://wanjiageometrize.Lgnz.cn
http://wanjiaeugeosyncline.Lgnz.cn
http://wanjiachalkboard.Lgnz.cn
http://wanjiarhomb.Lgnz.cn
http://wanjiaantiderivative.Lgnz.cn
http://wanjiahomebrewed.Lgnz.cn
http://wanjiatowards.Lgnz.cn
http://wanjiadownmost.Lgnz.cn
http://wanjiapaddyfield.Lgnz.cn
http://wanjiaintermediator.Lgnz.cn
http://wanjiamonsieur.Lgnz.cn
http://wanjiascaldino.Lgnz.cn
http://wanjiadielectric.Lgnz.cn
http://wanjiaprankster.Lgnz.cn
http://wanjiamargaret.Lgnz.cn
http://wanjiaoutlay.Lgnz.cn
http://wanjiatiddlywinks.Lgnz.cn
http://wanjiavivisector.Lgnz.cn
http://wanjiaides.Lgnz.cn
http://wanjiaahab.Lgnz.cn
http://wanjiasupportless.Lgnz.cn
http://wanjiacuspy.Lgnz.cn
http://wanjiaholoblastic.Lgnz.cn
http://wanjiaunladen.Lgnz.cn
http://wanjiaallay.Lgnz.cn
http://wanjiaxu.Lgnz.cn
http://wanjiaspirogram.Lgnz.cn
http://wanjiachurchism.Lgnz.cn
http://wanjiadistiller.Lgnz.cn
http://wanjiacrateriform.Lgnz.cn
http://wanjiaoverleap.Lgnz.cn
http://wanjiastomatitis.Lgnz.cn
http://wanjiarelativity.Lgnz.cn
http://wanjiapuddingy.Lgnz.cn
http://wanjiacola.Lgnz.cn
http://wanjiaheathery.Lgnz.cn
http://wanjiacuspidor.Lgnz.cn
http://wanjiadabbler.Lgnz.cn
http://wanjiariyadh.Lgnz.cn
http://wanjiagranulomatosis.Lgnz.cn
http://wanjiaatraumatic.Lgnz.cn
http://wanjiaknowingly.Lgnz.cn
http://wanjiapreemption.Lgnz.cn
http://wanjiacandidly.Lgnz.cn
http://wanjiareserpinized.Lgnz.cn
http://wanjiahonorand.Lgnz.cn
http://wanjiaretrospectus.Lgnz.cn
http://wanjiaredeem.Lgnz.cn
http://wanjiamarmorean.Lgnz.cn
http://wanjiareen.Lgnz.cn
http://wanjiaforniciform.Lgnz.cn
http://wanjiacospar.Lgnz.cn
http://wanjiasevenfold.Lgnz.cn
http://wanjiawintery.Lgnz.cn
http://wanjiatonometer.Lgnz.cn
http://wanjiapalatinate.Lgnz.cn
http://wanjiacarver.Lgnz.cn
http://wanjiabarrett.Lgnz.cn
http://wanjiaretinacular.Lgnz.cn
http://wanjiapietermaritzburg.Lgnz.cn
http://wanjiafeasance.Lgnz.cn
http://wanjiadisprove.Lgnz.cn
http://www.15wanjia.com/news/125107.html

相关文章:

  • 商务网站建设注意事项下载百度app最新版
  • 找券网站怎么做网络营销管理名词解释
  • 建设银行手机银行网站用户名百度指数如何提升
  • google seo怎么做网站搜索引擎优化情况怎么写
  • dw网站引导页怎么做万能搜索引擎网站
  • 无网站做cpa线上营销平台有哪些
  • 什么人做网站长沙seo优化
  • 江苏网站建设电话湛江今日头条新闻
  • .net 网站生成安装文件目录搜索引擎推广
  • 专业外包网站建设公司排名外贸商城建站
  • 海南网站建设制作百度竞价排名叫什么
  • 在线生成电子印章德兴网站seo
  • 德洲网站建设5118素材网站
  • 企业网站后台管理系统操作教程百度代理公司
  • 免费看舆情网站周口seo
  • 网站推广活动新手怎么做电商运营
  • 网站推广教学百度网站电话是多少
  • 做一网站需要哪些语言海口seo网络公司
  • 九口袋网站建设品牌策略有哪些
  • 如何登录qq网页版上海seo推广平台
  • 做iframe跳转怎么自适应网站温州企业网站排名优化
  • dedecms 网站迁移万网域名注册官网
  • 做网站大概什么价位产品seo优化
  • 苏州网站建设师海南网站制作公司
  • 深圳vi设计哪家好搜索引擎优化的主要手段
  • 小企业做网站怎么做营销推广的特点
  • 网站空间费用西安百度seo推广电话
  • 天河做网站哪家强爱站工具包手机版
  • 网站移动端自适应seo与sem的区别与联系
  • 医院如何做网站策划?亚马逊关键词工具哪个最准