您的位置:首页 > 其它

Path Sum

2016-06-21 15:13 363 查看
vector<vector<int>>pathSum(TreeNode *root, int sum)
{
vector<vector<int>> result;
vector<int> cur;
pathSum(root, sum, cur, result);
return result;

}
void pathSum(TreeNode *root, int gap, vector<int> &cur, vector<vector<int>> &result)
{
if (root == nullptr)return;

cur.push_back(root->val);//先压入
//如果是叶子结点且满足条件,保留
if (root->left == nullptr && root->right == nullptr)
{
if (root->val == gap)
result.push_back(cur);
//此时还不能返回
}

pathSum(root->left, gap - root->val, cur, result);
pathSum(root->right, gap - root->val, cur, result);

cur.pop_back();//注意弹出已经判断过的结点
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: