//DFS和二叉树
class Solution {
private:vector<int>temp;
vector<vector<int>>result;
void solve_dfs(TreeNode *root,int sum,vector<int> temp,int add)
{
if(root==NULL)
return;
if(root->left==NULL&&root->right==NULL)
{
if(add+root->val==sum)
{
temp.push_back(root->val);
result.push_back(temp);
temp.clear();
}
return;
}
temp.push_back(root->val);
solve_dfs(root->left,sum,temp,add+root->val);
solve_dfs(root->right,sum,temp,add+root->val);
}
public:
vector<vector<int> > pathSum(TreeNode *root, int sum) {
result.clear();
solve_dfs(root,sum,temp,0);
return result;
}
};