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

安卓系统软件 开发一键优化清理手机

安卓系统软件 开发,一键优化清理手机,福田网站建设费用,手机网站建设中心从中序与后序遍历序列构造二叉树(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/396302.html

相关文章:

  • 深圳建网站找哪家百度指数分析
  • 婚庆公司网站北大青鸟职业技术学院简介
  • 个人可以做慈善网站吗搜索引擎优化的含义和目标
  • 莱芜手机网站建设电话关键词是什么意思
  • 动漫网站开发毕业设计百度网站大全首页
  • 深圳乐安居网站谁做的免费广告网
  • 万维网站2021最火营销方案
  • jtbc网站开发教程市场营销方案怎么写
  • 武汉网站建设服务网站seo方案策划书
  • google网站建设广东网站seo策划
  • 教人怎么做网页的网站视频推广平台
  • 一个网站需要什么广告营销策略
  • 建设部网站官网 施工许可百度指数怎么查
  • 政府部门网站模版中国教育培训网
  • 网站建设免备案免费空间带佣金的旅游推广平台有哪些
  • 桂林腾达网是什么网seo搜索推广费用多少
  • 凡客网站建立百度搜索风云榜单
  • 成都网站建设 培训班2023网站seo
  • 南宁手机平台网站百度指数分是什么
  • 昌吉州住房和城乡建设局网站阿里云建网站
  • 网站上百度要怎么做的迅雷磁力链bt磁力天堂
  • 旅游景区宣传软文seo排名赚下载
  • 设计素材网站酷p哪家公司做推广优化好
  • 未来的门户网站重庆二级站seo整站优化排名
  • 苏州做网站优化哪家好宁波关键词网站排名
  • 帝国cms做中英文网站网上营销网站
  • 信用平台网站建设建议2022最新永久地域网名
  • asp 网站 购物车sem竞价课程
  • Wordpress 建站 软件网址域名查询
  • 自学html做网站要多久下载百度 安装