108. 将有序数组转换为二叉搜索树 --力扣 --JAVA

news/2025/2/22 13:02:56/

题目

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

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

解题思路

  1. 可以采用二分法,每次选数组中间值为根节点创建树,这样可以确保左右子树的高度差的绝对值不超过1;
  2. 通过递归来逐级生成后续节点;
  3. 可通过变量设置左右边界,方便后续节点区间的取值;

代码展示

class Solution {public TreeNode sortedArrayToBST(int[] nums) {TreeNode data = toBST(nums, 0, nums.length - 1);return data;}public TreeNode toBST(int[] nums, int left, int right){if(left > right){return null;}int middle = (left + right) / 2;return new TreeNode(nums[middle], toBST(nums, left, middle - 1), toBST(nums, middle + 1, right));}
}


http://www.ppmy.cn/news/1240678.html

相关文章

5.3每日一题(不确定正负号的级数敛散性:和一个正项级数比较判定)

比较判别法和比较判别法的极限形式是对正项级数而言的&#xff0c;若一个级数和p级数比较&#xff0c;结果>0&#xff0c;则同敛散&#xff1b;若结果<0&#xff0c;则结果乘以-1 结果又同敛散了&#xff1b;所以只要比值不等于0&#xff0c;则同敛散&#xff1b; 所以当…

SQL 中的运算符与别名:使用示例和语法详解

SQL中的IN运算符 IN运算符允许您在WHERE子句中指定多个值&#xff0c;它是多个OR条件的简写。 示例&#xff1a;获取您自己的SQL Server 返回所有来自’Germany’、France’或’UK’的客户&#xff1a; SELECT * FROM Customers WHERE Country IN (Germany, France, UK);语…

Linux内核中的overlay文件系统

一、简介 Docker 内核实现容器的功能用了linux 内核中的三个特性 Namespace、Cgroup、UnionFs&#xff0c;今天我们来说一下UnionFs。 linux UnionFs 实现的是overlay 文件系统 OverlayFs 文件系统分为三层&#xff0c; lower 是只读层 Upper 是可读写 Merged 是 lower 和U…

电机应用-直流有刷电机多环控制实现

目录 直流有刷电机多环控制实现 硬件设计 直流电机三环&#xff08;速度环、电流环、位置环&#xff09;串级PID控制-位置式PID 编程要点 配置ADC可读取电流值 配置基本定时器6产生定时中断读取当前电路中驱动电机的电流值并执行PID运算 配置定时器1输出PWM控制电机 配…

python生成邀请码,手机验证码

python生成邀请码,手机验证码 使用python生成邀请码,手机验证码,大小写字母,数字等,示例代码如下。 1、获取随机码 import randomdef get_random_code(is_digit=False, num=6):获取随机码:param is_digit: 是否为全数字:param num: 长度:return:if is_digit:sequence =…

【Unity】IBeginDragHandler、IDragHandler 和 IEndDragHandler 介绍

IBeginDragHandler、IDragHandler 和 IEndDragHandler 介绍 IBeginDragHandler、IDragHandler 和 IEndDragHandler 是 Unity 引擎中的三个接口&#xff0c;用于处理 UI 元素的拖放事件。这些接口通常结合使用&#xff0c;构成了 Unity 引擎的拖放事件系统。 IBeginDragHandler…

蓝桥杯物联网竞赛_STM32L071_4_按键控制

原理图&#xff1a; 当按键S1按下PC14接GND&#xff0c;为低电平 CubMX配置: Keil配置&#xff1a; main函数&#xff1a; while (1){/* USER CODE END WHILE */OLED_ShowString(32, 0, "hello", 16);if(Function_KEY_S1Check() 1){ OLED_ShowString(16, 2, &quo…

【Flutter】设置顶部状态栏的显示、隐藏、半透明灰色显示

【Flutter】设置顶部状态栏的显示、隐藏、半透明灰色显示 设置方法&#xff1a; // 这种模式不现实状态栏 SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky); // 这种模式显示状态栏 SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); // 修…