有序数组转换为二叉查找树

news2024/11/27 14:33:58

问题描述

给定一个整数数组,其元素为先序排列,将其转换为高度平衡的二叉查找树。


示例

示例1

Input: nums = [-10,-3,0,5,9]
Output: [0,-3,9,-10,null,5]
Explanation: [0,-10,5,null,-3,null,9] is also accepted:

示例2

Input: nums = [1,3]
Output: [3,1]
Explanation: [1,null,3] and [3,1] are both height-balanced BSTs.


解决方案描述

有序数组的中间点即二叉查找树的根节点,将有序数组从中间位置分为左右两部分,左边部分为根节点的左子节点部分,右边部分为右子节点部分。递归左边部分和右边部分,即可得到二叉查找树。

  • 如果数组长度为空,则返回null。
  • 新建当前中间节点的树节点。
  • 有序数组的左边部分和右边部分分别保存到新建的数组中。
  • 递归当前中间节点的左边部分,并将返回值赋值给新建树节点的左子节点。
  • 递归当前中间节点的右边部分,并将返回值赋值给新建树节点的右子节点。
  • 返回新建树节点。

 具体代码见下面的链接

有序数组转换为二叉查找树

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/49823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32实战总结:HAL之触摸屏

输入类设备简介 IO输入输出,是计算机系统中的一个概念。计算机的主要功能就是从外部获取数据然后进行计算加工得到目标数据并输出给外部(计算机可以看成数据处理器)。计算机和外部交互就是通过IO。每一台计算机都有个标准输入和标准输出。 常…

业务:财务会计业务知识

一、引言 会计是以货币为主要计量单位,对企业、事业、机关、团体及其他经济组织的经济活动进行记录、计算、控制、分析、报告,以提供财务和管理信息的工作。会计的职能主要是反映和控制经济活动过程,保证会计信息的合法、真实、准确和完整&a…

像素坐标和实际坐标的转换

文章目录像素坐标系图像坐标系小孔成像原理相机坐标系畸变参数像素坐标系 像素坐标系uov是一个二维直角坐标系,反映了相机CCD/CMOS芯片中像素的排列情况。原点o位于图像的左上角,u轴、v轴分别于像面的两边平行。像素坐标系中坐标轴的单位是像素&#xf…

新手python的自学总结(已拿到百度offer)

今天给大家分享一个小伙伴自学Python找到工作的文章。 先简单介绍一下小伙伴的情况。是非科班出身的,虽然高中读的是理科,但是进入大学学了一个文科专业,之后就再没接触过理工科的东西。对计算机也是一窍不通,大学才刚开始接触电…

Linux源码——启动流程1

主要 大概流程就是: 通电自检-----》bios----》bootloader —》内核。其中内核这部分是这篇主要的,通过bootloader初始化好一些条件,然后调用kernel_entry()开始正式进入内核之中,后面就是内核操作了,启动进程什么的…

Java知识点

Java浅拷贝 Java的深拷贝和浅拷贝 - YSOcean - 博客园 (cnblogs.com) Clone 是 Object 类中的一个方法,通过对象A.clone() 方法会创建一个内容和对象 A 一模一样的对象 B,clone 克隆,顾名思义就是创建一个一模一样的对象出来(浅…

如何确保海外服务器的高可用性?

服务器正常运行时间和站点可用性是每个企业的首要任务。但对于那些通过在线业务盈利的公司来说,确保可靠性是最重要的。然而,任何意外停机都是有代价的,而硬件故障是最常见的原因。不过好在这也是可以预防的。那么,如何确保海外服…

怎样把网页上的音频转换成mp3格式?试试这几个转换方法

大家平时喜欢听音乐吗?我经常会在网上保存一些不错的音频到设备上,这样子就方便我可以随时播放了。那你们有遇到过该音频格式不支持播放的情况吗?这种情况是因为播放器兼容的音频格式比较少,需要我们将音频格式转换成播放器兼容的…

如何发现Python依赖库漏洞

因为python编程的流行,python的各种库也越来越多,但许多小伙伴可能只注意到了自己编程所要依赖的环境,但是却忽略了库的版本也有可能存在漏洞的风险,如果不及时检查和更新python依赖库,那么很有可能你写的代码本身就存…

[附源码]SSM计算机毕业设计医院药房管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

《500强高管谈VE》-以VE ORIENTED管理为目标

文章出处:日本VE协会杂志文章翻译:泰泽项目部 关注泰泽:实现高利润企业《500强高管谈VE》-以VE ORIENTED管理为目标 作者:代表董事兼副社长近藤一 以阪神大地震为首的诸多事件等,社会动荡中,经济的动向也以…

HTML + CSS 实现矩形/圆形进度条效果 - SVG

本文记录通过 HTML CSS 部分原生 JS 使用 SVG 嵌入 HTML 文档的用法实现常见的圆形和矩形进度条效果,效果图如下:(实际运行效果是进度条从 0 过渡到一个目标值比如 100%) 下面直接上代码: 圆形 HTML:线…

【数据结构】第七章 图

1.单选(2分) 已知一个有向图的邻接矩阵表示,要删除所有从第i个结点发出的边,操作为( )。 ‏A.将邻接矩阵的第i列删除 B.将邻接矩阵的第i行元素全部置为0 C.将邻接矩阵的第i列元素全部置为0 D.将邻接矩阵的第i行删除 2.单选(2分)…

UE5——动画混合

一、引言 关于动画的一些基础可以看我往期的文章:《UE5——动画重定向》 二、动画混合 1、动画混合的原理 动画: 我们知道动画实际上就是控制静态模型中的某些点按照一定的预定轨迹移动,简言之就是 “一组变换信息的集合” 动画混合&…

多功能手持读数仪VH03如何连接手机蓝牙

VH03 内置有基于 SPP(Serial Port Profile)协议的蓝牙接口,蓝牙名称为“VH03”。 使用任何支持 SPP 协议的蓝牙设备均可实现与 VH03 的连接。当蓝牙建立连接后,可向 VH03 发送指令进行交互(前述 MODBUS、AABB、字符串…

CET-4 week9 阅读 写译

去# 阅读 question 定位 寻找有意义有目的 的动词符号 – , 转折词从句的解释说明理解超刚词不完全一样的地方要注意 注意匹配对应 answer 是否出现比较 比较对象 结果 article 重点长难句考点不在简单词上 选相反的答案或其他 仔细阅读 严格翻译题目 知道重点…

采用策略分布曲线评估信用风险模型的效果

在信贷业务的风控体系中,模型的构建与应用始终是一项重点内容,最常见的莫过于贷前环节的申请信用风险模型。作为典型的二分类模型,为了有效识别好坏用户群体,我们经常选取某些评价指标来量化模型的综合性能,例如KS、AU…

Java定时任务技术分析

《从零打造项目》系列文章 工具 比MyBatis Generator更强大的代码生成器 ORM框架选型 SpringBoot项目基础设施搭建SpringBoot集成Mybatis项目实操SpringBoot集成MybatisPlus项目实操SpringBoot集成Spring Data JPA项目实操 数据库变更管理 数据库变更管理:Liquibase…

内存 管理

内存管理c/c中内存分布sizeof 与 strlenc 语言中动态内存管理方式malloccallocreallocc 中动态内存管理new 与 delete自定义类型空间的动态分配new 与 delete 的实现operator new 与 operator delete基本概念辨识malloc/free 与 new/delete 区别 *****内存泄漏c/c中内存分布 c…

手把手教你:CSS + JS实现文本交替

1. Koa 中间件 Koa 的中间件通过一种更加传统的方式进行级联,摒弃了以往 node 频繁的回调函数造成的复杂代码逻辑。使用异步函数,我们可以实现"真正" 的中间件。与之不同,当执行到 yield next 语句时,Koa 暂停了该中间…