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

交通网站建设方案网站seo快速

交通网站建设方案,网站seo快速,网络营销策划方案目的,疫情防控最新数据消息题目 输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 解题思路 这题较为复杂, 首先审题,前序遍历规则:根左右, 中序遍历&#x…

题目

输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。
假设输入的前序遍历和中序遍历的结果中都不含重复的数字。

解题思路

这题较为复杂, 首先审题,前序遍历规则:根左右, 中序遍历: 左根右, 首先可以知道的是前序遍历的第一个就是根节点,然后我们从这个根节点的值找到中序遍历的左子树和右子树, 分别在这个前序遍历的根节点值得左边为左子树,根节点值得右边为右子树, 然后再回到前序遍历, 找到根后面相同长度的左子树, 和左子树后面相同范围的右子树即可,依次类推。然后这题要求返回更节点, 首先想到的就是递归,一直return到最后的根节点, 然后我们这边将中序遍历的每个节点放到map中, 主要是为了获取中序遍历的下标, 然后我们创建一个递归函数, 参数分别是前序遍历根节点所在的Index下标, 中序遍历开始位置, 中序遍历结束位置, 然后大纲就是先创建一个root的TreeNode,用第一个参数前序遍历下标的值, 然后将该TreeNode分别指向左子树和右子树, 这里就需要用到递归函数了, 最后return这个root的TreeNode,左子树递归的参数很简单,第一个为根下标+1即可,因为是根左右,所以根的下一个下标必为左子树的根,第二个开始位置为左子树开始的位置,主要注意的是左子树结束的位置为map获取位置的-1,然后右子树的递归函数参数最难的就是右子树的根下标位置,根的下标位置其实是等于根节点下标 + 左子树长度 + 1=》 rootIndex + (前面左子树结束下标-前面左子树开始下标 + 1) + 1=》rootIndex + (inorderRootIndex - 1 - left + 1) + 1=> rootIndex + inorderRootIndex -left + 1, 这就是右子树在前序遍历中开始的位置了, 然后右子树的开始位置就是中序遍历RootIndex+1的位置, 结束位置就是之前的right位置就可以了, 具体实现代码如下。

Java解题思路

import java.util.HashMap;
import java.util.Map;
public class BuildTree {public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val = x; }}Map<Integer, Integer> map;int[] preorder;public TreeNode buildTree(int[] preorder, int[] inorder) {this.preorder= preorder;map = new HashMap<>();for (int i = 0; i < inorder.length; i++) {map.put(inorder[i], i);}return buildT(0, 0, inorder.length - 1);}private TreeNode buildT(int rootIndex, int left, int right) {if(left > right){return null;}int inorderRootIndex = map.get(preorder[rootIndex]);TreeNode root = new TreeNode(preorder[rootIndex]);root.left = buildT(rootIndex + 1, left, inorderRootIndex - 1 );root.right = buildT(rootIndex + inorderRootIndex - left + 1 , inorderRootIndex + 1, right);return root;}
}
http://www.tj-hxxt.cn/news/31500.html

相关文章:

  • 长宁区网站建设推广系统
  • 北京网站建设unitewww怎么搜索网站
  • 山东青岛网站建设公司排名国内的搜索引擎有哪些
  • 外贸网站定制制作公司安卓aso优化
  • 佛山市南海区交通建设网站培训机构排名全国十大教育机构排名
  • 网络营销模式有几种网站推广优化方法
  • 做户外照明有哪些网站东莞网站推广优化网站
  • 电子商务网站服务器域名信息查询
  • 网站建设架构怎么制作网站
  • 一级a做爰片2017免费网站舆情管理
  • 芜湖高端网站建设泰州百度公司代理商
  • 做360网站快速排名软件今天最新的新闻头条
  • 支付宝服务商平台东莞百度seo电话
  • 个人网站建设费用广州白云区疫情实时动态
  • 北京网站设计制作多少钱宽带营销策略
  • 相关网站怎么做中国楼市最新消息
  • 买了云服务器怎么做网站写软文怎么接单子
  • 织梦网站建设实验报告seo专业学校
  • 重庆建站多少钱一年百度一下首页官网百度
  • 做视频网站用什么语言网络营销推广方式有哪些
  • 免费咨询会计昆山seo网站优化软件
  • 宁夏网站建设怎么样优化关键词的方法正确的是
  • 吉林省建设安全监督站网站seo sem
  • 商丘网站建设推广公司广东搜索引擎优化
  • 品牌网站建设的要点seo快速排名优化方法
  • 做网站 赚钱吗焊工培训
  • 网站怎么做导航条宁波seo在线优化方案公司
  • iis7.0搭建网站seo公司 杭州
  • 做百度推广网站排名百度后台管理
  • vue做的小网站软件网站排行榜