码迷,mamicode.com
首页 > 其他好文 > 详细

树枝节点之和是否等于给定值

时间:2015-09-05 23:33:39      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

比如一个 [3, 1, 5, 10] 的树,设其根结点为 root, 那么对于函数 hasPathSum(root, 18) 的返回值就是 true。

题目列出的知识点是深度优先搜索,可是我刚明白一点动态规划,所以我考虑的是,符合条件的树枝去掉叶子,剩下节点的和必然等于给定值减去叶子节点。

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

 

树枝节点之和是否等于给定值

标签:

原文地址:http://www.cnblogs.com/wuOverflow/p/4784149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!