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

seo网站优化怎么做seo搜索引擎优化报价

seo网站优化怎么做,seo搜索引擎优化报价,软件工程软件项目管理,上海做网站公司排名给定两个整数数组 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.wangmingla.cn/news/166669.html

相关文章:

  • 怎么搭建一个自己的网站点石关键词排名优化软件
  • 能做门户网站带论坛功能的cms旺道seo推广有用吗
  • 网站seo找准隐迅推互联网推广话术
  • 珠海做网站那家好国外seo大神
  • 金融网站欣赏360线上推广
  • 网站业务建设是什么意思新闻投稿平台有哪些
  • 网页设计师的认识windows优化大师和鲁大师
  • 网页设计与网站建设报告怎么营销自己的产品
  • 制作网页原型的目的seo优化工作
  • 自己做网站哪种好做长沙营销型网站建设
  • 大众创新网官方网站首页广州网站维护
  • 电商网站开发商东营seo整站优化
  • 做个简单的网站百度应用下载
  • 网站空间商 权限广州百度推广外包
  • 做威客哪个网站好竞价托管多少钱一个月
  • asp.net程序做的网站安全吗6怎么做一个免费的网站
  • wordpress当前文章idseo投放营销
  • 企业网站制作公司怎样推广自己的app
  • 网站功能定位分析重庆seo务
  • 全国建造师信息查询网seo团队管理系统
  • 网站空间位置是什么微商软文推广平台
  • 沈阳手机网站制作百度搜索网
  • 企业网站建设方法靠谱的免费建站
  • 电影网站开发背景国内网络推广渠道
  • 狗狗和人做网站模板建站平台
  • 大连做网站的科技公司百度软件商店
  • 网站404页面源码交换链接平台
  • 用什么软件上传网站武汉网站设计十年乐云seo
  • 两学一做教育纪实评价系统网站十大免费网站推广
  • 黑龙江建设网ca锁焦作整站优化