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

无锡网站建设价格打电话做网站的话术

无锡网站建设价格,打电话做网站的话术,做网站毕业设计存在的问题,汕尾网站设计给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7], postorder [9,15,7,20,3] 输出:[3…

给定两个整数数组 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.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) {// 中序遍历是左中右,后序遍历是左右中,使用递归,用左右坐标来分割两个数组,每个小数组都是一个小树// 左右中,这是后序树的数组,那么这个子数组的最后一个元素一定是这个子树的根节点,然后中序序列里找// 左中右,找到中,就可以分割开左右子树,迭代分割,直到最小子树,无法分割return buildTreeHelper(inorder, 0, inorder.length-1, postorder, 0, postorder.length-1);}public TreeNode buildTreeHelper(int[] inorder, int inStart, int inEnd,int[] postorder, int postStart, int postEnd) {if (inStart > inEnd || postStart > postEnd) {return null;}// 最后一个必是根节点int root = postorder[postEnd];int rootIndex = 0;// 得到根节点坐标while (true) {if (root == inorder[rootIndex]) {break;}rootIndex++;}// 只有中序遍历知道左右子树的信息是不够的,还需要让后续遍历知道int leftLength = rootIndex - inStart;// 左子树的中序遍历数组起始就是父数组的起始,结束是根节点-1,后序遍历数组的起始就是父数组的起始,结束是父数组起始 + 左子树长度 - 1TreeNode left = buildTreeHelper(inorder, inStart, rootIndex-1, postorder, postStart, postStart + leftLength-1);// 右子树的中序遍历数组起始就是根节点+1,结束是父数组的结束,后序遍历数组的起始就是父数组的起始 + 左子树长度,结束是父数组的结束 - 1,减去的这个1就是根节点的长度TreeNode right = buildTreeHelper(inorder, rootIndex + 1, inEnd, postorder, postStart + leftLength, postEnd-1);// 然后构造返回return new TreeNode(root, left, right);}}

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

相关文章:

  • 贵州安顺做公司网站建站行业有哪些
  • 网站建设专家哪家强网站关键词优化步骤
  • 高端网站设计开发广州网站建设易企
  • 沈阳 建设工程 招标中心网站android 移动网站开发
  • 中国建设银行北京天竺支行网站wordpress缺少样式表
  • 精仿手表网站上海搬家公司电话价格表
  • 做网站需要交管理费吗网站建设如何实现检索功能
  • 千万pv网站开发成本什么是网络营网络销售好做吗谁做过
  • 织梦模板网站源码甘肃省建设厅建筑业信息网
  • 高端模板建站报价关键词优化的建议
  • 临河做网站商城网站怎样做
  • 郑州网站优化排名推广网页版qq登录入口官网手机
  • 建网站赚钱 知乎织梦本地安装网站
  • 渭南免费做网站php网站建设培训班
  • 制作网站需要什么知识济宁网架公司
  • 铜陵app网站做营销招聘信息展厅设计费
  • 中山建设企业网站公司网站建设费如何出账
  • 给公司做网站数据分析哪家卖的wordpress主题好
  • 哪个网站建设好网站服务费一年多少钱
  • h5做的网站有哪些wordpress建m域名网站
  • 网站建设的扩展性分析江苏建设厅官方网站人工费
  • 高校网站建设存在问题手机软件开发专业
  • 免费网站建设必择山东绘政科技wordpress总是404
  • 安顺市住房和城乡建设局网站天台县建设局官方网站
  • 上海移动云网站建设自己做网站翻译服务器 - 添加网站
  • 长春专业做网站代运营公司收费
  • 山东城乡住房建设厅网站有哪些可以推广的平台
  • 如何用个门户网站做销售济南百度做网站
  • 如何构建一个电子商务网站高端建站选哪家
  • 网站被域名重定向昆明外贸网站设计服务商