/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};
*/
class Solution {
public:
int num = 0;
vector<vector<int> > result;
vector<int> temp;
vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {
if(root != NULL){
num += root->val;
temp.push_back(root->val);
//当root是根节点
if(root->left == NULL && root->right == NULL){
//当路径和值与目标值相等时
if(num == expectNumber)
result.push_back(temp);
}else{
FindPath(root->left,expectNumber);
FindPath(root->right,expectNumber);
}
temp.pop_back();
num -= root->val;
}
return result;
}
};