递归方法
解析
三步:
递归终止条件:root == NULL;
basecase返回:if(!root->left&&!root->right&&sum==0)total.push_back(thisTotal);
函数关系:solve(root->left,total,thisTotal,sum);solve(root->right,total,thisTotal,sum);
class Solution {
public:
vector<vector<int>> pathSum(TreeNode* root, int sum) {
vector<vector<int>> vec1;
vector<int>vec2;
solve(root,vec1,vec2,sum);
return vec1;
}
void solve(TreeNode *root,vector<vector<int>> &total,vector<int>thisTotal,int sum)
{
if(!root)
return;
sum-=root->val;
thisTotal.push_back(root->val);
if(!root->left&&!root->right&&sum==0)
total.push_back(thisTotal);
solve(root->left,total,thisTotal,sum);
solve(root->right,total,thisTotal,sum);
}
};