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

网站服务器多少钱一月wordpress 博客宠物

网站服务器多少钱一月,wordpress 博客宠物,ueditor to wordpress,影城网站设计105 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder #xff0c;其中 preorder 是二叉树的先序遍历#xff0c; inorder 是同一棵树的中序遍历#xff0c;请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,1…105 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder 其中 preorder 是二叉树的先序遍历 inorder 是同一棵树的中序遍历请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,null,15,7] 示例 2: 输入: preorder [-1], inorder [-1] 输出: [-1] 提示: 1 preorder.length 3000 inorder.length preorder.length -3000 preorder[i], inorder[i] 3000 preorder 和 inorder 均 无重复 元素 inorder 均出现在 preorder preorder 保证 为二叉树的前序遍历序列 inorder 保证 为二叉树的中序遍历序列 思路 根据先序遍历和中序遍历的特点我们知道先序遍历的第一个节点就是root然后在中序遍历中找到root那么其左边为左子树右边为右子树。 利用递归实现的过程假设先序遍历数组preorder的区间为[preL,preR]中序遍历数组inorder的区间为[inL,inR]。那么中间的根节点为preorder[preL]利用k标记找到inorder中的根节点那么 左子树节点个数为numLeft k-inL. 左子树的先序遍历区间为[preL1, preLnumLeft]中序遍历区间为[inL,k-1] 右子树的先序遍历区间为[preLnumLeft1, preR]中序遍历区间为[k1,inR]. 这样一直递归下去即可。 PS图解来自胡凡《算法笔记》P294。 代码 /*** 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* create(vectorint preorder, vectorint inorder, int preL,int preR, int inL, int inR) {if (preL preR) {return nullptr;}TreeNode* root new TreeNode(preorder[preL]);int k;for (k 0; k inorder.size(); k) {if (inorder[k] preorder[preL]) {break;}}int numLeft k - inL;root-left create(preorder, inorder, preL 1, preL numLeft, inL, k - 1);root-right create(preorder, inorder, preL numLeft 1, preR, k 1, inR);return root;}TreeNode* buildTree(vectorint preorder, vectorint inorder) {int n preorder.size();return create(preorder, inorder, 0, n - 1, 0, n - 1);} };106 从中序与后序遍历序列构造二叉树 给定两个整数数组 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 保证是树的后序遍历 思路 和上题思路类似。只不过root为后序遍历的最后一个节点。 利用递归实现的过程假设后序遍历数组postorder的区间为[postL,postR]中序遍历数组inorder的区间为[inL,inR]。那么中间的根节点为postorder[postR]利用k标记找到inorder中的根节点那么 左子树节点个数为numLeft k-inL. 左子树的后序遍历区间为[postL, postLnumLeft-1]中序遍历区间为[inL,k-1] 右子树的后序遍历区间为[postLnumLeft, postR-1]中序遍历区间为[k1,inR]. 这样一直递归下去即可。 PS图解来自胡凡《算法笔记》P296。 代码 /*** 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* create(vectorint inorder, vectorint postorder, int postL,int postR, int inL, int inR) {if (postL postR) {return nullptr;}TreeNode* root new TreeNode(postorder[postR]);int k;for (k 0; k postorder.size(); k) {if (inorder[k] postorder[postR]) {break;}}int numLeft k - inL;root-left create(inorder, postorder, postL, postL numLeft - 1, inL, k - 1);root-right create(inorder, postorder, postL numLeft, postR - 1, k 1, inR);return root;}TreeNode* buildTree(vectorint inorder, vectorint postorder) {int n inorder.size();return create(inorder, postorder, 0, n - 1, 0, n - 1);} };
http://www.zqtcl.cn/news/391073/

相关文章:

  • 怎么制作网站游戏辽宁建设工程网
  • 网站开发好还要空间吗网站支付链接怎么做的
  • 网站制作报价图片欣赏杭州做网站价格
  • 帮人家做家务的网站host绑定网站
  • 地方门户网站盈利模式这样做微信网站
  • 企业网站要怎么做wordpress w3
  • 网站备案帐号找回密码seo优化工作有哪些
  • 美橙网站建设教程网站建站系统
  • 湖北网站建设公司哪家好重庆建站模板平台
  • 青岛企业建站最新上线的手游
  • 织梦网站wap精品下载
  • 专业做包装的电商网站搜索推广图片
  • 淘客网站佣金建设怎么制作网站页面
  • 网站数据库 mysql如何构建wordpress
  • 牙克石网站建设宁波pc营销型网站制作
  • 具有营销价值好的网站深圳工程建设服务网
  • 全flash网站源码app软件开发公司员工守则
  • 曹鹏wordpress建站seo视频本溪做网站的公司
  • 提示网站有风险老电脑做网站服务器
  • 怎么做网站导航外链出入青岛最新通知今天
  • 济宁房产网站建设海外电商怎么做如何从零开始
  • 网站优化插件中国建设银采购发文网站
  • 重庆企业网站的推广电力建设集团网站
  • 长沙制作网站词条有哪些网站可以做
  • 网站 网页区别简单的网页设计作品
  • 济南做网站推广有哪些公司天津建设工程信息网官方
  • 番禺市桥网站建设有关网站建设的知识
  • 信用中国 网站 支持建设怎么做网站美工
  • 做网站怎么样引流郑州最好的妇科医院排行
  • 云软件网站建设做仓单的网站