判断和为给定值的路径是否存在

1. LeetCode 112. Path Sum

2. 描述:

给定一个二叉树和一个值,判断该树是否有一条根节点到叶节点的路径,并且该路径上所经过的节点值的和等于给定的sum值。

3. 示例:

给定以下二叉树,sum = 22,返回值为true, 原因是存在路径 5 -> 4 -> 11 -> 2的和为22

     5
    / \
   4   8
  /   / \
 11  13  4
 / \  \
7   2  1

4. 解决方案 1:

bool hasPathSum(TreeNode* root, int sum) {
    if(root == nullptr){
        return false;
    }else if(root->left == nullptr && root->right == nullptr && root->val == sum){
        return true;
    }else{
        return hasPathSum(root->left, sum-root->val) || hasPathSum(root->right, sum - root->val);
    }
}
Table of Contents