class Solution {
public:
vector<vector<int>>ans;
vector<int>path;
vector<vector<int> > pathSum(TreeNode *root, int sum) {
if(root)dfs(root,sum);
return ans;
}
void dfs(TreeNode*root,int sum)
{
path.push_back(root->val);
sum-=root->val;
if(!root->left&&!root->right&&sum==0)
{
ans.push_back(path);
path.pop_back();
return;
}
if(root->left)dfs(root->left,sum);
if(root->right)dfs(root->right,sum);
path.pop_back();
}
};
class Solution {
public:
vector<vector<int>>ans;
vector<int>path;
vector<vector<int> > pathSum(TreeNode *root, int sum) {
if(root)dfs(root,sum);
return ans;
}
void dfs(TreeNode*root,int sum)
{
path.push_back(root->val);
sum-=root->val;
if(!root->left&&!root->right&&sum==0)
ans.push_back(path);
else
{
if(root->left)dfs(root->left,sum);
if(root->right)dfs(root->right,sum);
}
path.pop_back();
}
};
网友评论