有序数组转换为二叉查找树
创始人
2024-03-04 21:09:36
0

问题描述

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


示例

示例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。
  • 新建当前中间节点的树节点。
  • 有序数组的左边部分和右边部分分别保存到新建的数组中。
  • 递归当前中间节点的左边部分,并将返回值赋值给新建树节点的左子节点。
  • 递归当前中间节点的右边部分,并将返回值赋值给新建树节点的右子节点。
  • 返回新建树节点。

 具体代码见下面的链接

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

 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...