【二叉搜索树】将有序数组转换为二叉搜索树-力扣 108 题

2023-09-18 19:20:06

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kuan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。

高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。

image-20230918191847935

输入:nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:

题解:

public TreeNode sortedArrayToBST(int[] nums) {
    return dfs(nums, 0, nums.length - 1);
}

private TreeNode dfs(int[] nums, int low, int height) {
    if (low > height) {
        return null;
    }
    int mid = (low + height) >> 1;
    TreeNode root = new TreeNode(nums[mid]);
    root.left = dfs(nums, low, mid - 1);
    root.right = dfs(nums, mid + 1, height);
    return root;
}

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

更多推荐

Go基础语法:数组

6数组6.1数组的定义数组在定义时就需要声明其元素数量和类型://T即元素类型var数组变量名[元素数量]T如:vara[5]int.数组的长度必须是常量,并且长度是数组类型的一部分,一旦定义,长度不能变。所以,[5]int和[10]int是不同的类型。packagemainimport"fmt"funcmain(){

功能基础篇3——Python中的输入输出、文件读写、序列化

IO文件读写openopen()为内置函数,用于读写文件mode读写x,create,创建,文件存在报错,可写不可读r,read,读入,默认读写方式,文件不存在报错,可读不可写w,write,写入,文件不存在会创建文件,存在清空文件内容,可写不可读a,append,追加,文件不存在会创建文件,光标移至文件末尾,可写不可

CentOS常用命令

一、yum命令1.1列表源服务器软件包yumlist//列出yum源服务器上所有的软件包,太多了,一般不单独使用,大多数要配合管道grep使用yumlistopenssl*//列出yum源服务器上所有以openssl开头的软件包yumlist|grepopenssl//列出yum源服务器上所有包含openssl的软件包

实时可追溯性和事后可追溯性

在当今的世界里,成功的组织都将其创新和复杂产品开发流程建立在跨多个工作流的互联数据上。为此,他们需要收集利益相关者的想法以构建系统架构,管理高级需求以创建详细的用户故事,并实施验证程序以检查问题。同时,在满足标准规定并在当前的市场环境中保持竞争力的过程中,与各利益相关者的协作需要深度的追踪。许多行业标准都要求有需求追踪

记一次 .NET 某仪器测量系统 CPU爆高分析

一:背景1.讲故事最近也挺奇怪,看到了两起CPU爆高的案例,且诱因也是一致的,觉得有一些代表性,合并分享出来帮助大家来避坑吧,闲话不多说,直接上windbg分析。二:WinDbg分析1.CPU真的爆高吗这里要提醒一下,别人说爆高不一定真的就是爆高,我们一定要拿数据说话,可以用!tp观察下。0:000>!tplogSta

关于ITSS认证资质整改和降级

最近来我公司咨询ITSS年审换证的企业比较多,很多企业伙伴的ITSS信息技术服务运维符合性证书2023年到期将面临换证,很多企业觉得拿证三年了都没有问题,换证随便糊弄一下就行了。但是在年审换证再评估中会遇到很多问题,就一些问题我们武汉好地科技小编整理出了一套年审换证再评估相关注意事项。ITSS认证再评估相关事项:1.持

ELK日志分析系统

日志服务器提高安全性集中存放日志缺陷:对日志的分析困难ELK日志分析系统ElasticsearchLogstashKibana介绍ELK日志分析系统是一套完整的日志集中处理解决方案,基于Elasticsearch、Logstash、Kibana三种开源工具进行日志收集、存储和可视化elk可以帮助用户快速定位和分析应用程

Vue3函数式编程

文章目录前言一、三种编程风格1.template2.jsx/tsx3.函数式编写风格二、函数式编程1.使用场景2.参数3.例子3.render渲染函数总结前言本文主要记录vue3中的函数式编程以及其他编程风格的简介一、三种编程风格1.templateVue使用一种基于HTML的模板语法,使我们能够声明式地将其组件实例的

SPA首屏加载速度慢

什么是首屏加载首屏时间(FirstContentfulPaint),指的是浏览器从响应用户输入网址地址,到首屏内容渲染完成的时间,此时整个网页不一定要全部渲染完成,但需要展示当前视窗需要的内容首屏加载可以说是用户体验中最重要的环节关于计算首屏时间通过DOMContentLoad或者performance来计算出首屏时间

亚马逊登山扣CPC认证ASTMF1774测试和UIAA121测试报告申请

一.什么是登山扣答:登山扣是扣子的一种,顾名思义其就是用来在登山的时候配合绳子起到一个承重悬挂的作用.采用铝吕合金、铁或者是不锈钢等材料制作而成的一种登山工具之一。其形状多样,比较常见的是椭圆形和圆形的,除此之外还有长方形、三角形等样式的登山扣。铝合金登山扣由于质地较轻所以重量也比较交轻,所以携带方便,其耐腐蚀性和防锈

算法通关村-----LRU的设计与实现

LRU缓存问题描述请你设计并实现一个满足LRU(最近最少使用)缓存约束的数据结构。实现LRUCache类:LRUCache(intcapacity)以正整数作为容量capacity初始化LRU缓存。intget(intkey)如果关键字key存在于缓存中,则返回关键字的值,否则返回-1。voidput(intkey,i

热文推荐