var pathSum = function(root, targetSum) {
let answers = [];
let answer = [];
const backtrack = (t, n) => {//回溯
if(!t)return;
//走到空节点时添加答案,但是叶子节点左右节点都为空,所以有重复解,想办法去重
if(!t.left && !t.right && n == t.val){//走叶子节点(特殊情况),更新答案,放入总答案,再回溯
answer.push(t.val);
answers.push([...answer]);
answer.pop();
return;
}
//正常回溯
answer.push(t.val);
backtrack(t.left, n - t.val);
backtrack(t.right, n - t.val);
answer.pop();
}
backtrack(root, targetSum);
return answers;
};
JS 力扣刷题 113. 路径总和 II
最新推荐文章于 2024-05-11 21:19:51 发布