LeetCode-108-将有序数组转换为二叉搜索树
题目
给你一个整数数组 nums
,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。
示例 1:
1 | 输入:nums = [-10,-3,0,5,9] |
示例 2:
1 | 输入:nums = [1,3] |
提示:
1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums
按 严格递增 顺序排列
题解
其实能感觉到刷题有用,至少可以写出来大概的代码了。
BST的中序遍历是升序的,所以这题和根据中序遍历恢复二叉树是一样的。所以用升序序列的任何一个元素作为根节点,左边的序列构建左子树,右边的序列构建右子树,这样就可以得到一棵二叉树。因为题目要求平衡,所以选择中间位置的节点作为根节点。
1 | class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Excelius's World!