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

Leetcode 108. 将有序数组转换为二叉搜索树

108. 将有序数组转换为二叉搜索树

分析

给定一个有序数组,要求转换为二叉搜索树。
数组是有序的,并且要求二叉树。

这里看到数组是有序的,马上想到二分,但是又不需要完全二分 实现。
再复习二叉搜索树的结构特点
左边节点的值 < 中间节点的值

left < mid 

中间节点的值 < 右节点的值

mid < right 

看到这种情况,可以让计算机来帮助我们处理左右半边的节点。
于是,我们可以用递归来进行处理。

递归

  1. 先递归找到中间节点mid的下标
    mid = left + right >> 1

  2. 再将root指向nums[mid]

  3. 接着递归处理半边
    root.left = fun(nums , left , mid - 1)

  4. 再递归处理半边
    即root.right = fun(nums , mid + 1 , right)

这里很多小伙伴会疑惑为什么这样就可以AC,因为递归到最后的基元情况都是只有一个节点即根节点,不过是依次每次处理好每一层的根节点罢了。

注意

递归要对边界条件进行判断处理
当数组下界下标大于数组上界下标时,返回,这种情况非法

ACcode

/*** 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 {public TreeNode sortedArrayToBST(int[] nums) {return helper(nums , 0 , nums.length - 1);}public TreeNode helper (int nums[] , int left , int right){if(left > right){return  null;}int mid = (left + right) / 2;TreeNode root = new TreeNode(nums[mid]);root.left = helper(nums , left , mid - 1);root.right = helper(nums , mid + 1 ,right);return root;}
}

喜欢的小伙伴点点关注,我们下期再见✌️

往期回顾

不清楚蓝桥杯考什么的点点下方👇

考点秘籍

想背纯享模版的伙伴们点点下方👇

蓝桥杯省一你一定不能错过的模板大全(第一期)

蓝桥杯省一你一定不能错过的模板大全(第二期)

蓝桥杯省一你一定不能错过的模板大全(第三期)

蓝桥杯省一你一定不能错过的模板大全(第四期)!!!

想背注释模版的伙伴们点点下方👇

蓝桥杯必背第一期

蓝桥杯必背第二期

往期精彩回顾

蓝桥杯上岸每日N题 第一期(一)!!!

蓝桥杯上岸每日N题第一期(二)!!!

蓝桥杯上岸每日N题第一期(三)!!!

蓝桥杯上岸每日N题第二期(一)!!!

蓝桥杯上岸每日N题第三期(一)!!!

蓝桥杯上岸每日N题 第四期(最少刷题数)!!!

蓝桥杯上岸每日N题 第五期(山)!!!

蓝桥杯上岸每日N题 第六期(求阶乘)!!!

蓝桥杯上岸每日N题 第七期(小猫爬山)!!!

蓝桥杯上岸每日N题 第八期 (全球变暖)!!!

蓝桥杯每日N题 (消灭老鼠)

蓝桥杯每日N题(杨辉三角形)

蓝桥杯每日N题 (砝码称重)

蓝桥杯上岸每日N题(鸡尾酒)

操作系统期末题库 第九期(完结)

LeetCode Hot100 刷题(第三期)

idea创建SpringBoot项目报错解决方案

数据库SQL语句(期末冲刺)

想看JavaB组填空题的伙伴们点点下方 👇

填空题

竞赛干货

算法竞赛字符串常用操作大全

蓝桥杯上岸必刷!!!(模拟/枚举专题)

蓝桥杯上岸必背!!! (第三期 DP)

蓝桥杯上岸必背!!!(第四期DFS)

蓝桥杯上岸必背!!!(第五期BFS)

蓝桥杯上岸必背!!!(第六期树与图的遍历)

蓝桥杯上岸必背!!!(第七期 最短路算法)

蓝桥杯上岸必背!!!(第八期 简单数论)

蓝桥杯上岸必刷!!!(进制、数位专题)

蓝桥杯上岸考点清单 (冲刺版)!!!

蓝桥杯上岸必背模板 (纯享版)

http://www.lryc.cn/news/139700.html

相关文章:

  • 小匠物联联合亚马逊云助力企业数智化出海
  • (五)k8s实战-配置管理
  • GPT---1234
  • 计算机竞赛 基于大数据的时间序列股价预测分析与可视化 - lstm
  • python进行数据分析:数据预处理
  • 百度Apollo:引领自动驾驶技术的创新与突破
  • Python爬虫 异步、缓存技巧
  • YOLOv5屏蔽区域检测(选择区域检测)
  • 记录一次presto sql执行报错 Error executing query的解决办法
  • Android Studio开发之路 (五)导入OpenCV以及报错解决
  • vue3.3中ref和reactive原理源代码分析
  • 10.Oracle中decode函数
  • Podman安装部署kafka和管理界面(快速跑起来)
  • Hbase文档--架构体系
  • stm32基于HAL库驱动外部SPI flash制作虚拟U盘
  • vue3-ts- element-plus新增组件-过滤
  • PostgreSQL SQL优化
  • debian12网络静态ip配置-OSSIM 安全漏洞扫描系统平台
  • 微软 Visual Studio 现已内置 Markdown 编辑器,可直接修改预览 .md 文件
  • 阿里云通义千问开源第二波!大规模视觉语言模型Qwen-VL上线魔搭社区
  • 在腾讯云服务器OpenCLoudOS系统中安装Jenkins(有图详解)
  • 《vue3实战》在created生命周期中运用slice()方法结合element plus组件实现电影评价系统的分页
  • NO.04 MyBatis的各种查询功能
  • Spring循环依赖
  • docker以distribution和registry管理个人镜像仓库
  • 2023京东酒类市场数据分析(京东数据开放平台)
  • Android中的APK打包与安全
  • HTTPS单向认证与双向认证
  • (七) ElasticSearch 分词器
  • 足球- EDA的历史数据分析并可视化