938. Range Sum of BST

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);*/

//[1,2,2,2,null,2]

let node6 = new TreeNode(4);
let node5 = new TreeNode(3);
let node4 = new TreeNode(3);
let node3 = new TreeNode(4);
let node2 = new TreeNode(2,node5,node6);
let node1 = new TreeNode(2,node3,node4);
let root = new TreeNode(1,node1,node2);

/*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 rangeSumBST = function(root, low, high) {
	let sum = 0; 
  //debugger;
  function getSum(root){
    
    if(root){
    	if(root.val >= low && root.val <= high) 			{
    		sum += root.val
    	}
    	getSum(root.left);      
    	getSum(root.right);        
    }
  }
  getSum(root);
  return sum;
};


function TreeNode(val, left, right) {
      this.val = (val===undefined ? 0 : val)
      this.left = (left===undefined ? null : left)
      this.right = (right===undefined ? null : right)
}

function printTree(tree){
	if(!tree) return null;
  
  console.log(tree.val);
  printTree(tree.left); 
  printTree(tree.right);
    
}

console.log(rangeSumBST(root,3,5));