Balance a Binary Search Tree LeetCode solution in JavaScript

1
var balanceBST = function (root) {
2
let arr = []; //store sorted value in array
3
let InOrder = (node) => {
4
//inorder helper to traverse and store sorted values in array
5
if (!node) return;
6
InOrder(node.left);
7
arr.push(node.val);
8
InOrder(node.right);
9
};
10
InOrder(root);
11
let BalancedFromSortedArray = (arr, start, end) => {
12
//create Balanced tree from sorted array
13
if (start > end) return null;
14
let mid = Math.floor((start + end) / 2);
15
let newNode = new TreeNode(arr[mid]);
16
newNode.left = BalancedFromSortedArray(arr, start, mid - 1);
17
newNode.right = BalancedFromSortedArray(arr, mid + 1, end);
18
return newNode;
19
};
20
let Balanced = BalancedFromSortedArray(arr, 0, arr.length - 1);
21
return Balanced;
22
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0