Sunny-117 / js-challenges

✨✨✨ Challenge your JavaScript programming limits step by step

Home Page:https://juejin.cn/column/7244788137410560055

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

路径总和 II

Sunny-117 opened this issue · comments

/**
 * @param {TreeNode} root
 * @param {number} targetSum
 * @return {number[][]}
 */
var pathSum = function(root, targetSum) {
    let res = [];
    const backtracking = (node,sum,path) => {
        if(sum === 0 && !node.left && !node.right){
            res.push(path.slice())
            return 
        }
        if(!node.left && !node.right){
            return 
        }
        if(node.left){
            path.push(node.left.val);
            backtracking(node.left,sum - node.left.val,path);
            path.pop()
        }
        if(node.right){
            path.push(node.right.val)
            backtracking(node.right,sum - node.right.val,path)
            path.pop()
        }
    }
    if(!root) return [];
    backtracking(root, targetSum - root.val, [root.val]);
    return res
};