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

微企点建站平台介绍手机端搜索引擎排名

微企点建站平台介绍,手机端搜索引擎排名,二手书网站建设,全景制作软件app从中序与后序遍历序列构造二叉树(Java) 大体思路:从后序数组中找到最后一个元素的值,即为当前节点并进行节点的创建,并在中序数组中找到该值所在索引(使用Map)。接着开始递归,后序数组倒着向前&#xff08…

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

大体思路:从后序数组中找到最后一个元素的值,即为当前节点并进行节点的创建,并在中序数组中找到该值所在索引(使用Map)。接着开始递归,后序数组倒着向前(所以递归应该先从右子树开始),当右子树遍历完(即不存在遍历区间时left>right)return。

问题分析

  1. 返回值:返回最终头节点;
  2. 参数:由于需要遍历区间,所以定义两个参数left、right,至于map, 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 {Map<Integer, Integer> map = new HashMap<>();int[] postorder;int postindex;public TreeNode buildTree(int[] inorder, int[] postorder) {this.postorder = postorder;postindex = postorder.length - 1;for(int i = 0; i < inorder.length; i++){map.put(inorder[i], i); // 通过值找索引(而且题目中表示值不会相同)}return treeBuild(0, postindex);}public TreeNode treeBuild(int left, int right //注意这个是inorder的左右区间 ){if(left > right){return null;}int rootval = postorder[postindex--];TreeNode root = new TreeNode(rootval); //创建节点int mid = map.get(rootval); //中序的切割点root.right = treeBuild(mid + 1, right);root.left = treeBuild(left, mid - 1);return root;}
}

从前序与中序遍历序列构造二叉树(Java)

思路分析:整体思路类似上一题,只不过这次先序遍历数组中的顺序是中左右,所以根节点是在最前边,同时递归时注意先左子树后右子树

/*** 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 {Map<Integer, Integer> map = new HashMap<>();int[] preorder;int i = 0; // 记录先序数组中的中间节点的索引public TreeNode buildTree(int[] preorder, int[] inorder) {this.preorder = preorder;for(int i = 0; i < inorder.length; i++){map.put(inorder[i], i);}return fucTree(0, preorder.length - 1);}public TreeNode fucTree(int left, int right){if(left > right){return null;}int rootval = preorder[i++];TreeNode root = new TreeNode(rootval);int mid = map.get(rootval);root.left = fucTree(left, mid - 1);root.right = fucTree(mid + 1, right);return root;}
}
http://www.dtcms.com/wzjs/490313.html

相关文章:

  • 带做骑传奇私服网站网络营销软文范例
  • 免费自己创建个人网站微信营销的10种方法技巧
  • 网站关键词优化遇到的情况和解决方法企业网站模板 免费
  • 做网站为什么要用php框架aso优化软件
  • 成都网站排名优化怎么收录网站
  • 个人如何做网站软件关键词推广优化外包
  • 杭州哪些做网站公司好营销软文范例
  • 深圳做网站建设开发网络广告形式
  • 做网站还是app电商代运营一般收多少服务费
  • 陕西企业网站建设哪家专业广东东莞疫情最新情况
  • 厦门北京网站建设公司百度地图导航手机版免费下载
  • 淄博政府网站建设托管seowhy教研室
  • 怎样保存网站资料做证据资讯门户类网站有哪些
  • 兰州网站建设哪家公司好it培训机构哪家好
  • 网站开发毕业设计收获与体会荆门刚刚发布的
  • 常州专业房产网站建设腾讯广告推广平台入口
  • 南京企业网站搭建网络宣传渠道
  • 自己建的网站打开的特别慢郑州网站推广电话
  • 怎么样自己做网站接订单广告投放策略
  • 企业名词解释百度惠生活怎么优化排名
  • 专业性行业网站有哪些seo优化行业
  • 做 网站 技术支持 抓获 互助网站群发推广软件
  • 阿里网站建设方案书软文网官网
  • 柳州市住房和城乡建设部网站高端网站定制公司
  • 动态网站建站网站seo在线诊断
  • 怎样做党史网站crm系统网站
  • 阿里云服务器做电影网站51趣优化网络seo工程师教程
  • 江门网站优化关键词排名优化怎么样
  • 怎么做自己的网站seo人人网
  • 怎样建设个人手机网站sem 优化软件