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

网站可以免费建立吗qq在线登录官网入口

网站可以免费建立吗,qq在线登录官网入口,网页设计理念和设计构思,wordpress二级标签题目描述 106. 从中序与后序遍历序列构造二叉树 中等 1.1K 相关企业 给定两个整数数组 inorder 和 postorder #xff0c;其中 inorder 是二叉树的中序遍历#xff0c; postorder 是同一棵树的后序遍历#xff0c;请你构造并返回这颗 二叉树 。 示例 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 3000postorder.length inorder.length-3000 inorder[i], postorder[i] 3000inorder 和 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(vectorint inorder,vectorint 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(;indexinorder.size();index){if(inorder[index]val){break;}}//postorder.size()inorder.size()if(postorder.size()1){return root;}postorder.resize(postorder.size()-1);//左闭右开区间 区间端点就是函数参数vectorint leftinorder(inorder.begin(),inorder.begin()index);vectorint rightinorder(inorder.begin()index1/*1就是将中序的根节点舍弃掉*/,inorder.end());vectorint leftpostorder(postorder.begin(),postorder.begin()leftinorder.size());vectorint rightpostorder(postorder.begin()leftinorder.size(),postorder.end());//递归调用root-leftfunc1(leftinorder,leftpostorder);root-rightfunc1(rightinorder,rightpostorder);return root;}TreeNode* buildTree(vectorint inorder, vectorint postorder) {if(inorder.size()0||postorder.size()0)//特殊条件的判断{return nullptr;}return func1(inorder,postorder);} }; 递归调用部分 需要对递归有一点了解 不然你就在纸上走读代码 去画递归展开图 调用左树就执行到底之后再进左树调用中的右树调用 再进右树调用还是先执行左树调用再执行右树调用 因为左树调用在右树调用的前面
http://www.dnsts.com.cn/news/239749.html

相关文章:

  • wordpress整站下载wordpress 小视频插件
  • 建个网站用多少钱营销型网站建设网站建设资讯
  • 苏州城乡建设局的网站ppt免费模板在哪下载
  • 制作网站管理系统常用网站logo
  • 网站后台文件名品牌网站建设框架
  • 山西通州集团网站建设网站SEO建设摘要
  • 网站的费用多少合适网站死链接怎么处理
  • 专业专题网站建设如何做微信个人网站
  • 网站建设出现401优秀个人网站案例
  • ps怎么做网站图片公司做网站是做什么账务处理
  • 校园门户网站建设先进视觉设计工作室
  • 免费建工作室网站网站设计师认证培训
  • 做论坛网站 备案外墙清洗
  • 重庆专业的网站建设公司网页超链接到别的网站404
  • wordpress标记已读seo实战密码第四版
  • 建设公司网站需要什么技术拓客平台有哪些
  • 淮安制作网站在那里今天汽油价格
  • 品牌网站建设大概费用智慧旅游网站建设方案
  • 开网站做代发北京做兼职网站有哪些
  • 注册网站不用手机短信验证的宣威市住房和城乡建设局网站下载中心
  • 建设股公司网站西安注册公司在哪个网站系统
  • 公司形象vi设计长春关键词优化公司
  • 格力网站建设首页佛山网站建设与推广
  • ps网站如何做烫金的文字阳江招聘网站哪里最好找工作
  • 河北网站开发网站做京东商城网站
  • 网站开发具体问题自己做网站难
  • 如何破解网站后台账号和密码开发公司房屋移交物业
  • 凡科网免费做网站wordpress如何换主题
  • 网站别人做的上面有方正字体蘑菇街的网站建设
  • 建筑公司网站关键词有哪些赣州网络招聘