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

河北邢台路桥建设公司网站怎么在百度发布自己的文章

河北邢台路桥建设公司网站,怎么在百度发布自己的文章,中小网站建设,绵阳的网站建设公司文章目录 题目方法一:递归 题目 方法一:递归 preorder [3,9,20,15,7] inorder [9,3,15,20,7] 首先根据 preorder 找到根节点是 3然后根据根节点将 inorder 分成左子树和右子树 左子树 inorder [9]右子树 inorder [15,20,7]这时候3是根节点 3的左子树…

文章目录

    • 题目
    • 方法一:递归

题目

在这里插入图片描述
在这里插入图片描述

方法一:递归

preorder = [3,9,20,15,7]
inorder = [9,3,15,20,7]
首先根据 preorder 找到根节点是 3然后根据根节点将 inorder 分成左子树和右子树
左子树
inorder [9]右子树
inorder [15,20,7]这时候3是根节点  
3的左子树为如下
preorder[9] 3的右子树为如下preorder[20 15 7] 现在我们只需要构造左子树和右子树即可,成功把大问题化成了小问题
然后重复上边的步骤继续划分,直到 preorder 空,返回 null 即可

解题的关键在与找根节点和 左子树和右子树在前序遍历数组的范围,一步步找出根节点,然后划分出左右子树,然后让根节点指向左右子树,然后又对左右子树左重复动作

这个根据前序遍历的第一个节点(根节点)去中序遍历中找左右子树的范围,可以根据前序遍历的根节点值循环去中序遍历中找,因为题目保证节点不存在重复,所以可以根据中序遍历维护一个节点和下标的哈希表,这个前序遍历的根节点,可以轻松的找到中序遍历的根节点,从而在前序遍历中确定左右子树的范围

  1. 根据中序遍历维护一个key为节点,value为下标的哈希表
  2. 根据前序遍历的第一个节点(也就是根节点)去中序遍历哈希表找根节点
  3. 再根据哈希表中找到的根节点,在中序遍历找到左子树的区间
  4. 再根据这个区间,去前序遍历找到左子树的范围,以及右子树的范围
  5. 新建根节点,指向待处理的左子树和右子树(递归)

在这里插入图片描述
在这里插入图片描述

// 方法一 : 递归+哈希(到中序遍历数组中找 根节点值  然后判断出左右子树,再根据前序构建树)Map<Integer,Integer> inorderMap = new  HashMap<>(); //记录中序遍历节点与数组下标的映射关系public TreeNode buildTree(int[] preorder, int[] inorder) {//中序遍历数组下标映射map构造for(int i = 0 ; i<inorder.length;i++){inorderMap.put(inorder[i],i);}//构建树            前序数组  前序数组起始位置       前序数组末尾位置   中序数组起始位置       return myBuildTree(preorder,     0,               preorder.length - 1,                0        );}public TreeNode myBuildTree(int[] preorder, int prebegin , int preend,int inbegin) {if ( prebegin > preend) {return null;}int preorder_root = prebegin;  // 前序遍历中的第一个节点就是根节点int preindex = inorderMap.get(preorder[preorder_root]); // 在中序遍历中定位根节点TreeNode root = new TreeNode(preorder[preorder_root]);    // 先把根节点建立出来int size_left_subtree = preindex - 1 -inbegin; // 得到左子树中的节点数目// 递归地构造左子树,并连接到根节点// 先序遍历中「从 左边界+1 开始的 size_left_subtree」个元素就对应了中序遍历中「从 左边界 开始到 根节点定位-1」的元素root.left = myBuildTree(preorder,prebegin +1,prebegin+1 + size_left_subtree,inbegin);// 递归地构造右子树,并连接到根节点// 先序遍历中「从 左边界+1+左子树节点数目 开始到 右边界」的元素就对应了中序遍历中「从 根节点定位+1 到 右边界」的元素root.right = myBuildTree(preorder,prebegin+1 + size_left_subtree+1,preend,preindex+1);return root;}
http://www.wangmingla.cn/news/80004.html

相关文章:

  • php网站怎么做自适应阿拉营销网站
  • php 读取网站文件网络营销的类型
  • 网站里面如何做下载的app百度网盟推广
  • 成都企业网站建设及公司ppt营销模式方案
  • 郑州企业网站建设软件开发培训
  • 做一个搜索引擎网站要多少钱广告类的网站
  • 专注咖啡相关的网站网络广告营销策略
  • 销售平台排名某个网站seo分析实例
  • 网站制作方案中哪几个点比较重要网站怎么添加外链
  • 深圳网站建设 制作元网站设计优化
  • 陕西网站开发公司电话网站开发从入门到实战
  • php+mysql 2012也买酒商城网站源码包括哪些内容
  • 网站开发是怎么回事西安seo引擎搜索优化
  • 做网站需要人员网络营销公司排名
  • 网页开发者模式怎么打开济南百度推广优化
  • 湖南平台网站建设公司全网推广公司
  • 网站建设中404什么意思故事式软文广告300字
  • 青海西宁高端网站建设爱站长尾词挖掘工具
  • 集约化网站建设管理网络推广网站程序
  • 如何查询网站是否有做404百度一下你就知道官方网站
  • 怎么用群晖nas做网站百度搜索引擎排名
  • 子网站怎么做网站制作公司排行榜
  • 有做微信婚介网站的吗营业推广方案怎么写
  • 做3d图的网站有哪些软件下载黑龙江最新疫情
  • 短网址解码seo网站排名助手
  • 网站建设实训报告外包公司的人好跳槽吗
  • 贵州飞乐云毕节网站建设推广优化厂商联系方式
  • 有偷菜餐厅城市建设的网站seo深度优化公司
  • 网站建设中 英文关键词seo报价
  • 巨腾网站建设奶茶软文案例300字