美文网首页
112. Path Sum

112. Path Sum

作者: YellowLayne | 来源:发表于2017-06-19 18:17 被阅读0次

    1.描述

    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.

    2.分析

    3.代码

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     struct TreeNode *left;
     *     struct TreeNode *right;
     * };
     */
    bool hasPathSum(struct TreeNode* root, int sum) {
        if (NULL == root) return false;
        if (NULL == root->left && NULL == root->right) return root->val == sum;
        if (NULL == root->left) return hasPathSum(root->right, sum - root->val);
        if (NULL == root->right) return hasPathSum(root->left ,sum - root->val);
        bool left = hasPathSum(root->left, sum - root->val);
        bool right = hasPathSum(root->right, sum - root->val);
        return left || right;
    }
    

    相关文章

      网友评论

          本文标题:112. Path Sum

          本文链接:https://www.haomeiwen.com/subject/dihnqxtx.html