leetcode 113. 路径总和 II medium
题目描述:
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。
说明: 叶子节点是指没有子节点的节点。
解题思路:
dfs
代码:
class Solution {
public:
vector<vector<int>> pathSum(TreeNode* root, int sum) {
if(root==nullptr)
return {};
vector<vector<int>> res;
vector<int> out;
dfs(root,0,sum,res,out);
return res;
}
void dfs(TreeNode *root, int cur,int target,vector<vector<int>> &res,vector<int> &out){
if(root==nullptr)
return;
cur += root->val;
out.push_back(root->val);
if(!root->left && !root->right && cur==target){
res.push_back(out);
}
dfs(root->left,cur,target,res,out);
dfs(root->right,cur,target,res,out);
out.pop_back();
}
};