LEETCODE--Path Sum
来源:互联网 发布:淘宝助手电子面单设置 编辑:程序博客网 时间:2024/04/29 19:48
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.
方法一:
利用RedFlag函数将tree进行判断;
将flag作为一个标记;
如果满足条件则变为1;
/** * 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: void RedFlag(TreeNode* root, int sum, int val, bool &flag){ val += root->val; if(!root->left && !root->right && val== sum) flag = 1; if(root->left) RedFlag(root->left, sum, val, flag); if(root->right) RedFlag(root->right, sum, val, flag); } bool hasPathSum(TreeNode* root, int sum) { int val = 0; bool flag = 0; if(!root) return 0; RedFlag(root, sum, val, flag); return flag; }};
方法二:
/** * 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 YesOrNo(TreeNode* root, int sum, int val){ if(!root) return 0; val += root->val; if(!root->left && !root->right){ if(val == sum) return 1; else return 0; } return YesOrNo(root->left, sum, val) || YesOrNo(root->right, sum, val); } bool hasPathSum(TreeNode* root, int sum) { int val = 0; return YesOrNo(root, sum , val); }};
0 0
- leetcode Path Sum && Path Sum ||
- 【Leetcode】Path Sum (Sum)
- leetcode:leetcode :Path Sum
- 【Leetcode】Path Sum II (Sum)
- LeetCode: Minimum Path Sum
- LeetCode: Path Sum
- LeetCode: Path Sum II
- LeetCode Minimum Path Sum
- LeetCode Path Sum
- LeetCode Path Sum II
- [Leetcode] Path Sum
- [Leetcode] Path Sum II
- LeetCode : Minimum Path Sum
- [Leetcode] Minimum Path Sum
- LeetCode: Path Sum
- LeetCode: Path Sum II
- [LeetCode] Path Sum
- [LeetCode] Path Sum II
- 葛爷带你上iOS王者——03
- 欢迎使用CSDN-markdown编辑器
- Python: scikit-image binary descriptor
- 【Android学习之路】使用AIDL进行跨进程通信
- 剑指Offer-14-调整数组顺序使奇数位于偶数之前
- LEETCODE--Path Sum
- oracle 11G 实验 in 和 exists 区别
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Timer和TimerTask
- Android逆向之动态调试总结
- hdu 3032(博弈)
- 多线程的创建问题
- vs2012与vs2015
- JAVA jdom解析xml简单用法