You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// 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.
//
// Example:
//
// Given the sorted array: [-10,-3,0,5,9],
//
// One possible answer is: [0,-3,9,-10,null,5], which represents the following height balanced BST:
//
// 0
// / \
// -3 9
// / /
// -10 5
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {number[]} nums
* @return {TreeNode}
*/
const sortedArrayToBST = (nums) => {
if (!nums.length) return null;
const m = ~~(nums.length / 2);
const node = new TreeNode(nums[m]);
node.left = sortedArrayToBST(nums.slice(0, m));
node.right = sortedArrayToBST(nums.slice(m + 1)); // make sure + 1, because middle number is root node, so need skip it