# 108. 将有序数组转换为二叉搜索树
给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。
高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。
示例 1
输入:nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
1
2
2
示例 2:
输入:nums = [1,3]
输出:[3,1]
1
2
2
解法:
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {number[]} nums
* @return {TreeNode}
*/
var sortedArrayToBST = function(nums) {
let buildBST = (arr,left,right) => {
if(left > right) return null;
let mid = math.floor((left + right) / 2);
let node = TreeNode(arr[mid]);
node.left = buildBST(arr,left,mid-1);
node.right = buildBST(arr,mid+1,right);
return node;
}
return buildBST(nums,0,nums.length-1);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
← 二叉树的层序遍历 使序列递增的最小交换次数 →