112. Path Sum
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 hasPathSum = function(root, sum) {
let sumPath = 0;
let equalToSum = false;
function helper(root,sumPath){
if(!root) return;
sumPath += root.val;
//in case of leaf
if(!root.left && !root.right){
if(sumPath === sum) equalToSum = true;
}
helper(root.left,sumPath);
helper(root.right,sumPath);
}
helper(root,sumPath);
return equalToSum;
};
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(hasPathSum(root,6));