题目描述
输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点 所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)
vector<vector<int> > arr;
vector<int> temp;
void st_judge(TreeNode* root,int sum,int flag)
{
temp.push_back(root->val);
if(root->left != NULL) st_judge(root->left,sum+(root->left->val),flag);
if(root->right != NULL) st_judge(root->right,sum+(root->right->val),flag);
if(root->left==NULL && root->right==NULL)
{
if(sum == flag)
{
arr.push_back(temp);
}
}
temp.pop_back();
}
public:
vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {
if(root != NULL) st_judge(root,root->val,expectNumber);
return arr;
}