给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。
class Solution
{
public:
vector< vector<int> >v;
vector<int>temp;
void InOrder(TreeNode *root, int sum)
{
if (root)
{
temp.push_back(root->val);
InOrder(root->left, sum);
if (root->left == NULL && root->right == NULL)
{
int s=0;//注意这里的初始化
for (int i = 0; i < temp.size(); i++)
{
s += temp[i];
}
if (s == sum)
{
v.push_back(temp);
}
}
InOrder(root->right, sum);
temp.pop_back();
}
}
vector<vector<int>> pathSum(TreeNode *root, int sum)
{
InOrder(root, sum);
return (v);
}
};