Leetcode No.112 路径总和

131 阅读1分钟

这道题很简单,三行代码完事。
思路:
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);
};