題目描述
輸入一顆二叉樹的根節點和一個整數,打印出二叉樹中結點值的和爲輸入整數的所有路徑。路徑定義爲從樹的根結點開始往下一直到葉結點 所經過的結點形成一條路徑。(注意: 在返回值的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;
}