您的位置:首页 > 其它

113. Path Sum II LeetCode

2016-03-15 22:52 441 查看
题意:求二叉树路径和等于sum的所有路径。

题解:dfs即可。

class Solution {
public:
void dfs(vector<vector<int>>& ans,vector<int>& pre,int sum, int total, TreeNode* root)
{
if(root->left != NULL && root->right != NULL)
{
pre.push_back(root->left->val);
dfs(ans,pre,sum,total + root->left->val,root->left);
pre.pop_back();
pre.push_back(root->right->val);
dfs(ans,pre,sum,total + root->right->val,root->right);
pre.pop_back();
}
else if(root->right != NULL)
{
pre.push_back(root->right->val);
dfs(ans,pre,sum,total + root->right->val,root->right);
pre.pop_back();
}
else if(root->left != NULL)
{
pre.push_back(root->left->val);
dfs(ans,pre,sum,total + root->left->val,root->left);
pre.pop_back();
}
else if(total == sum)
ans.push_back(pre);
}
vector<vector<int>> pathSum(TreeNode* root, int sum) {
vector<vector<int>> ans;
vector<int> pre;
ans.clear();
pre.clear();
if(root == NULL) return ans;
pre.push_back(root->val);
dfs(ans,pre,sum,root->val,root);
return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode