
方法一:递归
求二叉树和一个目标和,判断树中是否存在根节点到叶子节点的路径,路径上所有节点值相加等于目标和。
问题可以转化为,寻找是否有子节点的值为 sum - root-> value 。如果相等,那么说明该路径符合题目要求。如果不相等,就是不符合题目要求。
class Solution {public:bool hasPathSum(TreeNode* root, int sum) {if(root == nullptr){return false;}if(root -> left == nullptr && root -> right == nullptr){return sum == root->val;}return hasPathSum(root->left, sum - root->val) || hasPathSum(root->right, sum - root->val);}};
