leetcode---Path Sum
2016-04-09 19:48
274 查看
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.
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.
/** * 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 dfs(TreeNode *root, int sum, int cur) { if(root == NULL) return false; if(root->left == NULL && root->right == NULL) return cur + root->val == sum; return dfs(root->left, sum, cur+root->val) || dfs(root->right, sum, cur+root->val); } bool hasPathSum(TreeNode* root, int sum) { if(root == NULL) return false; return dfs(root, sum, 0); } };
相关文章推荐
- 一些JS事件
- 可拖拽GridView代码解析
- 2010年山东省第一届ACM解SDUT2151-2160 set,floyd变形
- 汉诺塔递归算法
- Whu oj 1609 - Han Move
- 软件工程结对作业02(借鉴版)
- JavaScript编写人机对战五子棋(七)
- mysql.bat
- 栈面试题
- 第七周项目1-点类-成员函数
- Linux下硬链接和软链接
- 如何在博客园发博客时插入优酷视频
- Java-Eclipse编辑窗口不见了
- 嵌入式linux常用shell指令
- Androdi AsyncTask
- 软件工程结对作业02(原创版)
- iOS开发学习之 - 深入学习UIButton(2)
- 《leetCode》:Kth Largest Element in an Array
- c++模板实现队列
- Collection集合层次结构图