这道题很简单,三行代码完事。
思路:
1.总和转化为,sum-路径总节点值 = 0
2.递归结束的条件:当前节点为空返回false;当前节点为叶子节点,判断sum-val==0
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @param {number} sum
* @return {boolean}
*/
var hasPathSum = function(root, sum) {
//当前节点为空
if(!root){
return false;
}
//当前节点为叶子节点,返回综合判断
if(!root.left&&!root.right){
return sum-root.val===0;
}
//非上述情况,继续递归左右子树,并减去当前节点的值
return hasPathSum(root.left,sum-root.val) || hasPathSum(root.right,sum-root.val);
};