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

网站建设分几模块免费手机网站建站系统

网站建设分几模块,免费手机网站建站系统,wp如何转换wordpress,前台网站模板给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 思路:题目给出了先序遍历和中序遍历的结果,因为先序遍历遵循根–>左–>…

给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。

在这里插入图片描述
思路:题目给出了先序遍历和中序遍历的结果,因为先序遍历遵循根–>左–>右,而中序遍历遵循左–>根–>右。所以先序第一个元素必定为根节点,我们可以对中序数组构建一个哈希表,用于存放每个元素的索引值,然后在中序找到根节点所在的索引。这样就可以知道左子树和右子树的数目,以及左子树和右子树的前序和中序遍历结果,最后可以使用递归方法构造出左子树和右子树,再将这两颗子树接到根节点的左右位置。

代码:

/*** 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 {private Map<Integer,Integer> indexMap;public TreeNode myBUildTree(int[] preorder,int [] inorder,int preorder_left,int preorder_right,int inorder_left,int inorder_right){if(preorder_left>preorder_right){return null;}int preorder_root = preorder_left;int inorder_root = indexMap.get(preorder[preorder_root]);TreeNode root = new TreeNode(preorder[preorder_root]);int size_left_subtree = inorder_root - inorder_left;//前序遍历中第一个元素为根元素,所以需要加1才开始是左子树root.left = myBUildTree(preorder,inorder,preorder_left+1,preorder_left+size_left_subtree,inorder_left,inorder_root-1);root.right = myBUildTree(preorder,inorder,preorder_left+size_left_subtree+1,preorder_right,inorder_root+1,inorder_right);return root;}public TreeNode buildTree(int[] preorder, int[] inorder) {int n = preorder.length;indexMap = new HashMap<Integer,Integer>();for(int i=0;i<n;i++){indexMap.put(inorder[i],i);}return myBUildTree(preorder,inorder,0,n-1,0,n-1);}
}

解释一下构造左、右子树的代码:

root.left = myBUildTree(preorder,inorder,preorder_left+1,preorder_left+size_left_subtree,inorder_left,inorder_root-1);root.right = myBUildTree(preorder,inorder,preorder_left+size_left_subtree+1,preorder_right,inorder_root+1,inorder_right);

构造左子树

先序遍历中「从 左边界+1 开始的 size_left_subtree」个元素就对应了中序遍历中「从 左边界 开始到 根节点定位-1」的元素
构造右子树

先序遍历中「从 左边界+1+左子树节点数目 开始到 右边界」的元素就对应了中序遍历中「从 根节点定位+1 到 右边界」的元素

http://www.tj-hxxt.cn/news/114008.html

相关文章:

  • 竞争对手 网站流量微信营销方法
  • 济南联通网站备案百度开户代理商
  • 做网站协调青岛运营网络推广业务
  • 廊坊网站设计制作优化设计三要素
  • 域名和网站空间怎么做解析宣传推广方式
  • 不属于web2.0网站开发google开户
  • 怎么样查中企动力做的网站济南seo整站优化招商电话
  • 把wordpress变成网盘seo 首页
  • 济宁市任城区建设局网站视频营销
  • 四字母net做网站怎么样广州网络优化最早的公司
  • 有什么做心理咨询的好网站网站推广如何做
  • 郓城网站开发百度云搜索引擎入口网盘搜索神器
  • 东阿做网站推广网络营销平台有哪些?
  • 今日头条母公司做网站规划如何让自己的网站排名靠前
  • 网站首页的滚动图片怎么做百度网盘资源搜索引擎搜索
  • 图派做网站2345电脑版网址导航
  • 摄影化妆艺术学校网站源码舆情网站入口
  • 免费申请商城网站网络营销软文案例
  • 泉州专业网站开发公司厦门人才网招聘官网
  • 医药网站素材培训机构需要哪些证件
  • 做网站会有侵权线上广告投放渠道
  • 电子设计网站域名服务器ip地址查询
  • 定制网站制作广州网络服务商
  • 星巴克网站建设百度搜索推广操作简要流程
  • 电商网站开发公司杭州线上电脑培训班
  • 怎么做自己网站产品seo网店运营推广登录入口
  • 东莞网站建设品牌建一个外贸独立站大约多少钱
  • 网站核检单大型seo公司
  • 网站建设项目分析怎么在百度上推广自己的产品
  • 网站建设推广报价单网络营销方法有哪几种