https://leetcode.com/problems/path-sum-ii/
void BT(vector<vector<int>>& output, vector<int>& path, TreeNode* node, int targetSum){
if(node->left == NULL && node->right == NULL)
{
if(targetSum == node->val){
path.push_back(node->val);
output.push_back(path);
path.pop_back();
return;
}else
return;
}
int newTarget = targetSum - node->val;
if(node->left){
path.push_back(node->val);
BT(output, path, node->left, newTarget);
path.pop_back();
}
if(node->right){
path.push_back(node->val);
BT(output, path, node->right, newTarget);
path.pop_back();
}
}
class Solution {
public:
vector<vector<int>> pathSum(TreeNode* root, int targetSum) {
vector<vector<int>> output;
vector<int> path;
if(root == NULL) return output;
BT(output, path, root,targetSum);
return output;
}
};