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

建设网站五个步骤wordpress excel插件

建设网站五个步骤,wordpress excel插件,WordPress提高打开速度,网站建设工作总结培训从中序与后序遍历序列构造二叉树 力扣题目链接 题目描述 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 解题思路 这道题很有难度&#xff0…

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

力扣题目链接

题目描述

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

解题思路

这道题很有难度,如果是从中序后序遍历去构造二叉树,还是很简单的,但是用代码取实现在思路上就很绕。

首先我们先来解决如何构造这个二叉树的逻辑:

  • 对于给定中序和后序遍历或者前序和中序遍历序列构造二叉树,最重要的是这个中序遍历序列,因为中序可以分割二叉树的左右子树;
  • 那么这里我们需要的是后序序列先确定该序列的根节点,然后在中序序列中去寻找这个节点,然后分割出左右子树;
  • 根据分割的左右序列的长度,我们可以确定后序遍历序列的左右子树位置及长度;
  • 把这些分割好的左右子树的中序和后序序列传入函数重复上述的操作即可。

上述思路如果不理解可以先去自行搜索二叉树相关的文章学习二叉树的基本知识。
在代码书写上,我们需要注意以下几点:

  • 递归的使用最重要的就是,我们确定好函数的传入参数以及返回值,这里我们需要的就是中序和后序的序列作为参数,对于每个子树的构造来说都是足够的。而返回值的选择自然是一个树节点的指针,用于返回该节点作为根节点的子树;
  • 合理分割遍历序列,才能保证子树的正确构造。在这里我们需要把序列根据左右子树给分割开,那么我们就需要声明几个新的数组变量来分别存储左右子树的中后序列然后传入函数,接受作为子树;

题解

class Solution {TreeNode* func(vector<int>& inorder, vector<int>& postorder){if(postorder.size() == 0){return NULL;}int num = postorder[postorder.size() - 1];TreeNode* root = new TreeNode(num);if(postorder.size() == 1){return root;}int p1;for(p1 = 0; p1 < postorder.size(); p1++){if(inorder[p1] == num) {break;}}vector<int> leftInorder(inorder.begin(), inorder.begin() + p1);vector<int> rightInorder(inorder.begin() + p1 + 1, inorder.end());postorder.resize(postorder.size() - 1);vector<int> leftPostorder(postorder.begin(), postorder.begin() + p1);vector<int> rightPostorder(postorder.begin() + p1, postorder.end());root->left = func(leftInorder, leftPostorder);root->right = func(rightInorder, rightPostorder);return root; } public:TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {if(inorder.size() == 0 || postorder.size() == 0){return NULL;}return func(inorder, postorder);}
};

总结

这道题目在思路上不难想到,主要是对于分割序列的左右边界需要多加留意。


文章转载自:

http://XX4NyuTK.tqygx.cn
http://pkrB6VGO.tqygx.cn
http://jFHVCxqi.tqygx.cn
http://SaKw6kKC.tqygx.cn
http://D0Q1V111.tqygx.cn
http://RsPetca9.tqygx.cn
http://si0UB22b.tqygx.cn
http://n0fEgu2l.tqygx.cn
http://X0QmVrfY.tqygx.cn
http://M9sjXrL7.tqygx.cn
http://02aM6Pt6.tqygx.cn
http://SOExx2mq.tqygx.cn
http://K1jrMvw7.tqygx.cn
http://NHcrhzQ7.tqygx.cn
http://o8h72Ukg.tqygx.cn
http://Js3pSurU.tqygx.cn
http://nple5KV3.tqygx.cn
http://hVdksdR4.tqygx.cn
http://b5Y7tsP9.tqygx.cn
http://Rg52oE4J.tqygx.cn
http://n79W0XLz.tqygx.cn
http://K98WLZoW.tqygx.cn
http://ArthRpg4.tqygx.cn
http://RNiyHnON.tqygx.cn
http://T7rnL3se.tqygx.cn
http://aEvQ8VJW.tqygx.cn
http://vL03eKTX.tqygx.cn
http://HiLuXEm8.tqygx.cn
http://9yTcolTP.tqygx.cn
http://6ZgvtVyr.tqygx.cn
http://www.dtcms.com/wzjs/745150.html

相关文章:

  • 免费做电子相册的网站水泵行业网站哪个做的好
  • 企业网站开发 流程软件开发一般需要多少钱
  • 深圳专业软件网站建设网站建设硬件和软件技术环境配置
  • 佛山网站建设定制开发实验室网站制作
  • 做电影资源网站有哪些vue 做企业网站
  • 两学一做 专题网站河南省台前县建设局网站
  • 网站开发薪水一般多少钱专业网站建设一条龙
  • 单网页网站内容网站建设与营销服务
  • win10 做网站服务器吗做免费视频网站违法吗
  • 网站修改 iis6应用程序池家用电脑桌面做网站
  • 徐州住房与建设局网站免费ppt成品
  • 安庆网站建设电话网站建设怎么学
  • 什么网站做一手房好上海网站制作公司是什么
  • 制作网站软件app网页游戏开服表源码
  • 网站需要备案才能建设吗PHP做克隆网站
  • 东莞英文网站制作百度seo公司一路火
  • 官方网站的重要性宣传软文怎么写
  • 做同城网站需要哪些手续宣传页在线设计软件
  • 网站外链快速建设企业网站建立制作
  • 南昌高端网站开发费用表西安自助建站系统
  • 用python做网站的多吗做货源网站可以赚钱吗
  • 蓝色高科技网站模板友情链接交换平台源码
  • 电脑做服务器上传网站定制小程序开发公司
  • 珠海一元夺宝网站建设互联网保险销售行为可回溯管理办法
  • 建设一个企业网站多少钱工业设计考研学校排名
  • 带着做计算机项目的网站logo制作步骤
  • 对电子商务网站建设的感想网站续费通知单
  • 博客网站模板自己怎么做网址开网站
  • 安徽合肥建设厅网站官方在家做兼职的网站
  • 移动网站建站系统下载东莞招聘网站