路径总和 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
};