题目
输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。
示例
代码
class Solution {
public:
int target;
vector<vector<int>> ans;
void getPath(TreeNode * cur, vector<int> path, int curSum){
if(cur == NULL) return;
curSum += cur->val;
path.push_back(cur->val);
if(curSum == target && cur->left == NULL && cur->right == NULL) ans.push_back(path);
getPath(cur->left, path, curSum);
getPath(cur->right, path, curSum);
path.pop_back();
}
vector<vector<int>> pathSum(TreeNode* root, int tar) {
target = tar;
vector<int> path;
getPath(root, path, 0);
return ans;
}
};```