Path Sum

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.

For example: Given the below binary tree and sum = 22,

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

return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.

bool hasPathSum(TreeNode* root, int sum) {
        //为什么不是在==NULL的时候判断是否等于0来确定是否存在path sum
        if(root == NULL)    return false;

        //到达叶子节点,root->left == root->right
        if(root->left == root->right)   return root->val == sum;

        return (hasPathSum(root->left, sum - root->val) || hasPathSum(root->right, sum-root->val));
    }

results matching ""

    No results matching ""