LeetCode112——path sum

  看到树就有一种本能的畏惧感,水平不足嘛。但是水平不够就越要敢于挑战,本题的意思是找到一条路径,这条路径上的和等于给出的数。这条路径必须是从叶子到根节点的哈。想想,如果从根节点开始找,每次sum减掉val则到了叶子节点的时候,sum肯定等于叶子节点的值。否则,就没有这么一条路径。朴素深搜,好装逼的词!!

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

 

posted on 2015-12-07 19:50  MMac  阅读(160)  评论(0编辑  收藏  举报

导航