首页 > 其他 > 详细

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

时间:2015-09-05 23:30:23      阅读:296      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!