Path Sum--LeetCode
来源:互联网 发布:wordpress速度优化 编辑:程序博客网 时间:2024/06/05 07:09
题目:
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.
思路:利用递归的思路。
bool helper(BinTree* root,int key,int cur){if(root == NULL)return 0;cur+=root->value;if(root->left == NULL && root->right == NULL){if(cur==key)return 1;elsereturn 0;}if(root->left !=NULL && root->right ==NULL)return helper(root->left,key,cur);if(root->right !=NULL && root->left ==NULL)return helper(root->right,key,cur);if(root->right !=NULL && root->left!=NULL)return helper(root->right,key,cur) || helper(root->left,key,cur);}bool PathSum(BinTree* root,int key){int cur=0;if(root== NULL)return 0;return helper(root,key,cur);}
bool hasPathSum(BinTree*root, int sum) { // Start typing your C/C++ solution below // DO NOT write int main() function if(root == NULL) { return false; } return pathSum(root, 0, sum); } bool pathSum(TreeNode * p, int total, int sum) { if((p->left == NULL) && (p->right == NULL)) { if(total + p->val == sum) { return true; } else { return false; } } else if(p->left == NULL) { return pathSum(p->right, p->val + total, sum); } else if(p->right == NULL) { return pathSum(p->left, p->val + total, sum); } else { return pathSum(p->left, p->val + total, sum) || pathSum(p->right, p->val + total, sum); } }
bool PathSum_second(BinTree* root,int value){if(root==NULL)return 0;if(root->left ==NULL && root->right == NULL && root->value == value)return 1;elsereturn PathSum_second(root->left,value-root->value)||PathSum_second(root->right,value-root->value);}ps; Sum Root to Leaf Numbers这个文章介绍了从根到节点的路径,那么我们也可以这么考虑,就是从根到叶子节点的路径的所有和是否等于给定的值来判断是否符合条件。
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
- spin_lock浅析
- 类的第四个成员:初始化块的使用
- 武汉大学GNSS中心给IGS提供的数据产品下载地址
- 第五周上机实践项目3——用多文件组织多个类的程序
- 通知控件的使用步骤
- Path Sum--LeetCode
- WEP
- Mavlink协议理解Pixhawk APM(三)
- jsp超链接<a href="../servlet/DeleteProject?pid=<%=rs.getInt("pid")%>">删除</a>传参数到servlet时出现404错误
- 经典递归问题
- AndroidStudio参考资料整理
- zoj 3329 One Person Game(概率(期望)+dp)经典
- linux内存管理学习笔记
- 我的24小时-Intel Galileo Gen 2入门