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

用 net做网站删除wordpress网页无用

用 net做网站,删除wordpress网页无用,怎么在网络上推广,网站与规划设计思路题目描述 106. 从中序与后序遍历序列构造二叉树 中等 1.1K 相关企业 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1…

题目描述

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

中等

1.1K

相关企业

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

示例 1:

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

示例 2:

输入:inorder = [-1], postorder = [-1]
输出:[-1]

提示:

  • 1 <= inorder.length <= 3000
  • postorder.length == inorder.length
  • -3000 <= inorder[i], postorder[i] <= 3000
  • inorder 和 postorder 都由 不同 的值组成
  • postorder 中每一个值都在 inorder 中
  • inorder 保证是树的中序遍历
  • postorder 保证是树的后序遍历

思路讲解

后续遍历:左 右 中

中序遍历:左 中 右

假设没有重复值的节点 如果有那就不会是种二叉树 你可以将重复节点挨个遍历 依次确定所有二叉树

那么后续排序就可以确定这颗二叉树的根节点 再在中序排序中找到该值(根节点)

将中序遍历分为三部分 左子树的中序遍历 根节点 右子树的中序遍历 

将后序遍历分为三部分 左子树的后续遍历 右子树的后续遍历 根节点

经过上面的处理 不能形成一颗完整的二叉树 因为里面有左右子树还没有确定其根节点

那么就要再进行上 面的操作 直到将左右子树全部确定完毕 

需要递归进行处理 也可以模拟递归 用栈去模拟递归 

结合上面思路先大致想一想递归代码的实现

代码部分处理

/**//树的节点* Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:TreeNode* func1(vector<int>& inorder,vector<int>& postorder)//递归{//postorder.size()==inorder.size()if(postorder.size()==0){return nullptr;}int val = postorder[postorder.size()-1];TreeNode* root = new TreeNode(val);//创建节点int index = 0;//寻找中序的根节点for(;index<inorder.size();index++){if(inorder[index]==val){break;}}//postorder.size()==inorder.size()if(postorder.size()==1){return root;}postorder.resize(postorder.size()-1);//左闭右开区间 区间端点就是函数参数vector<int> leftinorder(inorder.begin(),inorder.begin()+index);vector<int> rightinorder(inorder.begin()+index+1/*+1就是将中序的根节点舍弃掉*/,inorder.end());vector<int> leftpostorder(postorder.begin(),postorder.begin()+leftinorder.size());vector<int> rightpostorder(postorder.begin()+leftinorder.size(),postorder.end());//递归调用root->left=func1(leftinorder,leftpostorder);root->right=func1(rightinorder,rightpostorder);return root;}TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {if(inorder.size()==0||postorder.size()==0)//特殊条件的判断{return nullptr;}return func1(inorder,postorder);}
};

递归调用部分:

需要对递归有一点了解 不然你就在纸上走读代码 去画递归展开图

调用左树就执行到底之后再进左树调用中的右树调用 再进右树调用还是先执行左树调用再执行右树调用 因为左树调用在右树调用的前面

http://www.yayakq.cn/news/956673/

相关文章:

  • 网站开发国内外研究动态域名可以免费注册吗
  • 品牌网站建设小8蝌蚪手机网站建设经验
  • 移动应用开发网站教育网页设计模板
  • 青岛建站价格软件外包网
  • 怎么制作网站软件免费查企业app
  • 网站建设所需的硬软件最新上市新手机
  • 网站怎么做后期维护linux下wordpress建站
  • 深圳西乡建网站网站开发的人
  • 制作微信公众号的网站开发怎么查域名服务商
  • 佛山专业做网站公司有哪些北京高端商场
  • 哈尔滨网络宣传与网站建设网页设计图片轮播效果
  • 怎样加入网站南昌商城网站设计
  • 免费网站建设哪个好临沂建设工程招聘信息网站
  • 做快递网站制作百度爱采购排名
  • 网站建设需求背景wordpress修改固定链接后页面404
  • 针对网站开发者的问答网站东莞建设工程交易中心官网
  • 荆州网站建设 松滋网站建设外贸圈名人堂
  • 新手学做网站 下载哪家公司做直播间网站
  • 政务服务网站建设方案东莞网站建设qq群
  • 网站群建设指南嘉兴高端网站建设公司
  • 教育网站 网页赏析办网站需流程
  • 泉州cms建站系统蚌埠做企业网站
  • 微信电脑网站是什么原因做网站预算表
  • 昆山智能网站建设火狐浏览器网页版
  • 宁夏住房和城乡建设官方网站wordpress 提示插件安装插件
  • 在服务器网站上做跳转页面跳转页面建设了网站怎么管理系统
  • 百度域名ip是多少啥叫优化
  • 营销企业网站制作wordpress无评论
  • 有什么网站可以做运动优秀网站设计案例分析
  • 漳州博大网站建设微信页面转wordpress