基本问题:路径总和 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。
class Solution {
public:
bool hasPathSum(TreeNode* root, int sum) {
if (root == nullptr)
return false;
if (root->left&&root->right)
return hasPathSum(root->left, sum - root->val) + hasPathSum(root->right, sum - root->val);
else if (root->left)
return hasPathSum(root->left, sum - root->val);
else if (root->right)
return hasPathSum(root->right, sum - root->val);
else return (root->val == sum);
}
};
升级问题1:路径总和Ⅱ 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。
class Solution {
public:
vector<vector<int