108. Convert Sorted Array to Binary Search Tree
by samur3
JavaScript
/*let node3 = new TreeNode(4);
let node4 = new TreeNode(5);
let node1 = new TreeNode(2,node3,node4);
let node2 = new TreeNode(3);
let root = new TreeNode(1,node1,node2);*/
/*let node3 = new TreeNode(2);
let node1 = new TreeNode(1,undefined,node3);
let node2 = new TreeNode(3);
let root = new TreeNode(3,node1);*/
//[0,1,2,3,4,5]
let arr = [-10,-3,0,5,9];
//let root = new TreeNode(1,null,null);
/*let node5 = new TreeNode(2);
let node3 = new TreeNode(2);
let node2 = new TreeNode(2,node5);
let node1 = new TreeNode(2,node3);
let root = new TreeNode(1,node1,node2);*/
//[5,4,1,null,1,null,4,2,null,2,null]
/*let node6 = new TreeNode(2);
let node5 = new TreeNode(2);
let node4 = new TreeNode(4,node6);
let node3 = new TreeNode(1,node5);
let node2 = new TreeNode(1,undefined,node4);
let node1 = new TreeNode(4,undefined,node3);
let root = new TreeNode(5,node1,node2);*/
/*var sortedArrayToBST = function(arr) {
let len = arr.length;
let middle = Math.floor(len / 2);
let root = new TreeNode(arr[middle]);
for(let i= middle+1; i < len; i++){
buildTree(root,arr[i]);
}
for(let j= 0; j < middle; j++){
buildTree(root,arr[j]);
}
return root;
}*/
var sortedArrayToBST = function(arr) {
function buildTree(left,right) {
if(left > right) return null
let p = Math.floor((right+left)/2);
let node = new TreeNode(arr[p])
node.left = buildTree(left,p-1);
node.right = buildTree(p+1,right);
return node;
}
let root = buildTree(0,arr.length-1);
return root;
}
/*function buildTree(root,key){
if(!root){
root = new TreeNode(key);
return root;
}
else{
if(root.val > key){
root.left = buildTree(root.left,key);
}
else{
root.right = buildTree(root.right,key);
}
}
return root;
}*/
function TreeNode(val, left, right) {
this.val = (val===undefined ? 0 : val)
this.left = (left===undefined ? null : left)
this.right = (right===undefined ?...