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 ?...