给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。

说明: 叶子节点是指没有子节点的节点。

示例: 
给定如下二叉树,以及目标和 sum = 22

              5
/ \
4 8
/ / \
11 13 4
/ \ \
7 2 1

返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2

思路: 递归遍历左右子树,若当前节点为叶子节点且其值等于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&&root->val==sum)
return true;
else
return hasPathSum(root->left,sum-root->val)||hasPathSum(root->right,sum-root->val);
}
};

最新文章

  1. PAT 1022. D进制的A+B (20)
  2. keyup keydown keypress 区别
  3. Linux内核Makefile文件(翻译自内核手册)
  4. 30几个HTML5经典动画应用回顾 让你大饱眼福
  5. BAT-使用BAT方法判断网络启动EXE(快捷方式)
  6. jquery实现文字选择器
  7. 探索 Windows Azure 网站中的自动伸缩功能
  8. 11.TCP的交互数据流
  9. mui学习链接
  10. 用VS2015写一个简单的ASP.net网站
  11. wifipineapple的evilportal
  12. QuietHit小Game
  13. ScrollView嵌套ListView、GridView,进入页面显示的位置并不是在最顶部,而是在中间部分问题
  14. Mysql数据库基础小实例 学员管理系统菜单
  15. Log4j 把不同包的日志打印到不同位置
  16. 20145122《Java程序设计》第一周学习总结
  17. 设计模式笔记-观察者(Observer)
  18. [转] shell逻辑运算总结, 包括[[]]与[]的区别,&&与-a的区别,||与-o的区别
  19. 【cocos2d-js官方文档】十七、事件分发机制
  20. OpenCV教程【001 Mat显示图片】

热门文章

  1. webpack管理资源
  2. 自动化运维与Saltstack
  3. JS构造函数(便于理解,简易)
  4. 吐槽中小民营IT企业管理七宗罪
  5. ArcGIS Geodabase OBJECTID重新初始编号的间接方法
  6. Java—集合框架 List的 indexOf()、lastIndexOf()
  7. 一个简单的 HTML 文档,带有最基本的必需的元素
  8. Oracle 11.1.0.6 导入导出bug
  9. TP5.0:跳转链接到某控制器下的某方法
  10. March 31 2017 Week 13 Friday