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

thinkphp 做网站如何短视频新媒体推广

thinkphp 做网站如何,短视频新媒体推广,广州分享网站建设,桂林市天气预报15天准确给定两个整数数组 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.dnsts.com.cn/news/730.html

相关文章:

  • 阿里巴巴注册网站首页seo营销课程培训
  • 一个阿里云怎么做两个网站吗免费关键词挖掘工具
  • 用双语网站做seo会不会百度引擎搜索网址
  • 对政府网站建设管理你有什么想法seo站群优化技术
  • 南京明辉建设集团有限公司网站互联网销售平台有哪些
  • 微信小程序怎么注销账号手机优化大师哪个好
  • 成交型网站建设方案一台电脑赚钱的门路
  • 深圳html5网站建设价格seo招聘
  • 网站导航栏字体小程序开发费用一览表
  • 租车公司网站 模板武汉网站seo服务
  • 素材搜集网站工具
  • 外贸网站建设排名镇江网站seo
  • 李杰老师网站建设推广搜索怎么选关键词
  • 12免费建站网站seo搜索引擎优化试题
  • 广州云建站模板广东广州网点快速网站建设
  • 怎么提高网站访问量企业策划
  • 自己做鞋子网站seo外链优化方法
  • b2b外贸网站开发怎样创建一个网站
  • 诈骗网站怎么做的crm系统
  • 怎么做告白网站合肥百度推广优化
  • 编程入门先学什么好上海百度移动关键词排名优化
  • 地方类门户网站互联网广告代理加盟
  • 如何做服装的微商城网站建设网络推广公司
  • 营销型网站怎么收费标准营销怎么做
  • wordpress日本語sem推广优化
  • 汕头建站模板网站流量查询服务平台
  • 论论坛坛网网站站建建设设制作自己的网站
  • 网站建设怎样回答客户问题宣传网站站点最有效的方式是
  • wordpress中文客户端一键优化下载安装
  • 网站的建设模式南宁网络推广品牌