面试题34:二叉树中和为某一个值的路径
给二叉树的根节点 root
和一个整数目标和 targetSum
,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。
class Solution {
public:
vector<vector<int>> res;
vector<int> path;
vector<vector<int>> pathSum(TreeNode* root, int target) {
helper(root,target);
return res;
}
void helper(TreeNode* root,int target){
if(root==nullptr) // 如果到达叶子节点时不满足,返回上一层递归;
return;
path.push_back(root->val);
target-=root->val;
if(target==0 && root->left==nullptr && root->right==nullptr)
res.push_back(path);
helper(root->left,target);
helper(root->right,target);
path.pop_back(); // 弹出不符合情况的最后一个节点;
}
};