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

网站着陆率wordpress编写页面代码

网站着陆率,wordpress编写页面代码,国内电子商务网站有哪些,网站开发框架排行题目链接:https://leetcode.cn/problems/zhong-jian-er-cha-shu-lcof/ 1. 题目介绍(07. 重建二叉树) 输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的…

题目链接:https://leetcode.cn/problems/zhong-jian-er-cha-shu-lcof/

1. 题目介绍(07. 重建二叉树)

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

【测试用例】:
示例 1:
在这里插入图片描述

Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]
Output: [3,9,20,null,null,15,7]

示例 2:

Input: preorder = [-1], inorder = [-1]
Output: [-1]

【条件约束】:

0 <= 节点个数 <= 5000

2. 题解

2.1 递归

在这里插入图片描述

时间复杂度:O(n),空间复杂度:O(n)

但下列解法仅适用于 “无重复节点值” 的二叉树。
原因在于我们使用了HashMap来存储中序遍历的值和索引,也就默认了它的值是唯一的。

前序遍历性质: 节点按照 [ 根节点 | 左子树 | 右子树 ] 排序。
中序遍历性质: 节点按照 [ 左子树 | 根节点 | 右子树 ] 排序。
这里的递归用到了分治的思想,通过前序遍历,我们很容易就可以找到根节点,然后我们就可以拿着这个根节点的值去中序遍历中找,此时中序遍历根节点的左边就属于当前根的左子树,右边就属于当前根的右子树,以此类推…

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {// 1. 定义前序遍历索引,用于定位当前前序遍历所在的位置int preorderIndex = 0;// 2. 创建一个哈希表,用于存储中序遍历节点的位置//    后续想要查找元素,就可以将时间复杂度降为O(1)HashMap<Integer,Integer> inorderMap = new HashMap<>();public TreeNode buildTree(int[] preorder, int[] inorder) {// 3. 循环遍历,依次将inorder元素添加到哈希表中for (int i = 0; i < inorder.length; i++){inorderMap.put(inorder[i],i);}//  8. 最后返回根节点return arrayToTree(preorder,0,preorder.length-1);}public TreeNode arrayToTree(int[] preorder,int start, int end){// 4. 递归的出口,如果左边位置移动到超过右边,表示走完了,返回空if (start > end) return null;// 5. 创建一个TreeNode对象,用来保存当前的根节点TreeNode root = new TreeNode();root.val = preorder[preorderIndex++];// 6. 递归找左子树、递归找右子树root.left = arrayToTree(preorder,start,inorderMap.get(root.val)-1);      root.right = arrayToTree(preorder,inorderMap.get(root.val)+1,end);// 7. 当前递归结束,返回当前节点return root;}
}

在这里插入图片描述

此外还有很多其它解法,例如通过迭代加辅助栈的方法来求解,具体内容可参考[2] 重建二叉树(力扣官方题解).

3. 可参考

[1] 剑指 Offer 07. 重建二叉树(分治算法,清晰图解)
[2] 重建二叉树(力扣官方题解)
[3] 【LeetCode】No.105. Construct Binary Tree from Preorder and Inorder Traversal – Java Version (重复)

http://www.yayakq.cn/news/363561/

相关文章:

  • 网站在百度上搜索不到专家库 网站 建设方案
  • 马来西亚网站后缀破解wordpress登录密码
  • 大连城市建设管理局网站深度网创
  • 江苏股票配资网站建设.net网站程序
  • 自己做网站生意怎么样如何获得网站后台密码
  • 遂宁网站建设邢台公司做网站多少钱
  • 丰台网站制作浩森宇特代理ip平台
  • 网站做关键词链接有用吗网站建设的功能有哪些内容
  • 咸阳做网站排名江苏建设人才网站
  • 赣州住房与城乡建设厅网站wordpress改中文
  • 新手卖家做来赞达网站如何hanchengkeji杭州网站建设
  • o2o商城网站系统开发重庆工信部网站
  • 长沙旅游景点大全排名seo排名如何
  • 网站推广智选刺盾云下拉电销数据购买平台
  • 做没有好的网站你懂的衡水网站制作与推广
  • 小型教育网站的开发与建设系统做网站收录的网站有哪些
  • 美妆网站制作教程南宁手机建站公司
  • 学院宣传网站建设简介开江网站建设
  • 有特点的个人网站做平面设计去哪些网站找图
  • 东胜区教育网站入口物流管理专业就业方向
  • 网站建设app是什么网站备案 通知
  • 网站的积分系统怎么做建造师信息查询网
  • 网站建设需求说明书举例电子商务网站的设计
  • 哪个网站做布料好网站建设方案对比报告
  • 怎么创网站个人网站制作程序
  • 做网站可以用自己的主机注册top域名做公司网站
  • 网站备案类型及条件西安市今天发生的重大新闻
  • 创建app与网站的区别票付通app下载
  • 网站建设有哪些环节现代广告创意设计
  • 大型建设网站制作淘宝网现状 网站建设