leetcode Path Sum 路径和
2015-08-13 17:14
260 查看
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.
如果根节点为空,则返回false,如果不为空,且无左右子树,则判断当前和是否与根节点数据相等,否则递归:
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.
如果根节点为空,则返回false,如果不为空,且无左右子树,则判断当前和是否与根节点数据相等,否则递归:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ bool hasPathSum(struct TreeNode* root, int sum) { if(root==NULL)return 0; if(root->left==NULL&&root->right==NULL)return sum==root->val; return hasPathSum(root->left,sum-root->val)||hasPathSum(root->right,sum-root->val); }
相关文章推荐
- hibernate session缓存和java对象生命周期
- 圆角图片实现
- POJ 2409 - Let it Bead【Polya定理】
- Cg基础
- Android4.4 蓝牙源代码段分析
- PMAC运动程序例程(一)
- js中的null和undefined
- HDU 1013 Digital Roots (简单题_大数)
- 拓扑排序之NOIP2003神经网络
- 求两个数组的交集、并集和差集算法分析与实现
- codeforce Pasha and Tea
- java动态缓存成长小纪(一)——创建一个简单的缓存
- hdu 5387 Clock
- 文章标题
- 怎样理解阻塞非阻塞与同步异步的区别?
- HttpUtil
- 单链表——封装了一个类(1)
- JavaScript中的execCommand()命令详解及实例展示
- ubuntu内核编译环境说明
- Masonry介绍与使用实践(快速上手Autolayout)