力扣:将有序数组转化为二叉搜索树
将有序数组转化为二叉搜索树
一、题目
给你一个整数数组 nums
,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。
高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。
示例 1:
1 |
|
示例 2:
1 |
|
提示:
1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums
按 严格递增 顺序排列
二、解题
1 |
|
三、思路和原理
1.原理
采用递归和分治的思想,由于一个有序数组本身的顺序就是一个二叉树搜索树,所以题目本身的输入的顺序是符合题干的要求的,但是由于题干中要求要转换为一棵高度平衡的二叉搜索树,所以这道题目的本质是将一个二叉搜索树转化为一个平衡二叉搜索树
2.思路
先取出数组的中间值,作为二叉树的根节点,然后再用分治的思想获取根节点的左右子树。
力扣:将有序数组转化为二叉搜索树
https://chen77.top/2024/01/02/leetcode/108将有序数组转换为二叉搜索树/