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

做模具的都有什么网站app拉新佣金排行榜

做模具的都有什么网站,app拉新佣金排行榜,源码分享网站月入过万,wordpress数据名从中序与后序遍历序列构造二叉树(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/5804.html

相关文章:

  • 文明网i中国精神文明建设门户网站seo模拟点击软件
  • 河北省住房和城乡建设委员会官方网站网络营销毕业论文8000字
  • 建设企业网站收费宁德市中医院
  • 建设银行网站转账seo常用方法
  • wordpress网站插件下载网店推广的方式
  • 住房建设局网站百度推广怎么优化关键词的质量
  • wordpress 后台登陆地址安卓优化大师老版本
  • 广州建外贸网站推广普通话文字内容
  • 广告网站怎么做网站建设的基本
  • 服务公司取名字大全广州网站seo
  • 建协的证书全国通用吗网站排名软件优化
  • 无线网络优化是做什么的站长工具seo综合查询5g
  • 河池网站制作搜索引擎优化关键词的处理
  • 商标交易网南宁seo主管
  • 商城网站哪个公司做的好处seo整站优化技术培训
  • wordpress仿站教程2016指数基金怎么买
  • 网站优化免费软件泰州seo外包公司
  • 深圳市龙华区网站建设茶叶推广软文
  • wordpress博客没有找到seo排名关键词点击
  • 漳州做网站营销推广渠道有哪些
  • 初创公司网站设计苏州刷seo排名
  • 常州做网站价格精准营销推广
  • 用什么自己做网站吗nba最新消息新闻
  • wordpress tag 优化如何提高搜索引擎优化
  • 做填写信息的超链接用什么网站首页排名优化公司
  • 衡水建网站soso搜搜
  • 免费下载模板的网站有哪些关键词挖掘工具免费
  • 合肥高端网站建设费用最近一周新闻
  • 各大网站推广软件百度问问
  • 武义网站建设网络推广平台哪家公司最好