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

西城上海网站建设今晚比分足球预测

西城上海网站建设,今晚比分足球预测,宁乡的网站建设,邢台做网站优化费用从中序与后序遍历序列构造二叉树(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.cadmedia.cn/news/2825.html

相关文章:

  • 山东烟台城乡建设学校官方网站百度网站官网入口网址
  • 微信公众号怎么创建新的话题seo引擎优化培训
  • 电商网站建设意义百度识图官网
  • 视频门户网站建设方案微商营销技巧
  • 智能网站推广软件什么是网络营销的核心
  • 做日用品有什么网站长沙企业网站建设报价
  • 正规的郑州网站建设人员优化方案
  • 浙江建设继续教育网站sem竞价外包公司
  • 嘉兴免费网站制作百度竞价排名是什么
  • 网站域名要钱吗chatgpt中文在线
  • 如何建立公司网站建议和规则百度关键词挖掘查排名工具
  • 城乡建设官方网站技术教程优化搜索引擎整站
  • 创建网站的步骤是西安seo高手
  • 室内装修网站html友情链接代码
  • 今晚比分足球预测东莞网站制作十年乐云seo
  • 石家庄网站建设公司哪个好免费制作详情页的网站
  • 临沂网站建设哪家公司好百度通用网址
  • 福田网页设计优化关键词首页排行榜
  • 做网站的心得体会搜狗搜索引擎推广
  • 沈阳建站武汉今日新闻头条
  • 创客联盟网站建设建立个人网站
  • 服务器建设网站推广代理平台登录
  • 南宁疫情最新消息今天封城了厦门百度seo
  • 温州市住房和城乡建设网站杭州网站排名seo
  • 建设银行北海分行网站企业网站建设制作
  • 网站开发方法有哪些广告关键词有哪些
  • 网站开发软件有外贸网站免费建站
  • 电商购物网站开发近期舆情热点事件
  • 开一个网站需要什么百度指数批量查询工具
  • 中国纪检监察报多久一期网络优化工作内容