问题描述
代码
class Solution {
public:
vector<vector<int>> pathSum(TreeNode* root, int sum) {
vector <vector <int> > res;
vector <int> t;
if(root==NULL) return res;
if(root->left==NULL&&root->right==NULL) {
if(root->val==sum) {
t.push_back(sum);
res.push_back(t);
}
return res;
}
vector <vector <int> > left=pathSum(root->left,sum-root->val);
for(int i=0;i<(int)left.size();i++) {
left[i].insert(left[i].begin(),root->val);
res.push_back(left[i]);
}
vector <vector <int> > right=pathSum(root->right,sum-root->val);
for(int i=0;i<(int)right.size();i++) {
right[i].insert(right[i].begin(),root->val);
res.push_back(right[i]);
}
return res;
}
};