class Solution {
public:
bool Search(vector<vector<int> > & data, vector<int> one, TreeNode* root, int expectNumber){
if(root == NULL)
return false;
if(root -> val < expectNumber){
one.push_back(root -> val);
Search(data, one, root -> left, expectNumber-root->val);
Search(data, one, root -> right, expectNumber-root->val);
}else if(root -> val == expectNumber){
if(root -> left == NULL && root -> right == NULL)
{
one.push_back(root->val);
data.push_back(one);
}
}else{
return false;
}
return true;
}
vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {
vector<vector<int> > data;
vector<int> one;
Search(data, one, root, expectNumber);
return data;
}
};