108. Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
这道题的意思是,给了一个升序的数组,让你用它来构造一颗左子节点和右子节点相同的BST。
这道题的思路是通过根左右的先序遍历方式构造整棵树。
js中slice方法返回start, end之间的数组,包含start,不包含end。
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {number[]} nums
* @return {TreeNode}
*/
var sortedArrayToBST = function(nums) {
if(nums===null || !nums.length) {
return null;
}
let mid = Math.floor(nums.length/2);
const node = new TreeNode(nums[mid]);
node.left = sortedArrayToBST(nums.slice(0,mid));
node.right = sortedArrayToBST(nums.slice(mid+1, nums.length+1));
return node;
};