leetcode 113 路径总和 II
思路
- 同 112题 一样 dfs 遍历二叉树;
- 同时记录路径;
- 当到达 叶子 结点时,判断是否满足targetSum;
- 满足则存如结果集,不满足回退时,把记录的结点 pop 出来;
题解
class Solution {
public:
vector<vector<int>> res;
vector<int> path;
vector<vector<int>> pathSum(TreeNode* root, int targetSum) {
dfs(root, targetSum);
return res;
}
void dfs(TreeNode* root, int targetSum) {
if(root == NULL) return;
path.push_back(root->val);
targetSum -= root->val;
if(!root->left && !root->right && targetSum == 0) res.push_back(path);
dfs(root->left, targetSum);
dfs(root->right, targetSum);
path.pop_back();
}
};