Leetcode:Path Sum与Path Sum II
来源:互联网 发布:淘宝客服招工 编辑:程序博客网 时间:2024/05/20 10:54
Path Sum:
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.
/** * Definition for binary tree * 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 0; if(root->left==NULL&&root->right==NULL) return root->val==sum; return hasPathSum(root->left,sum-root->val)|| hasPathSum(root->right,sum-root->val); }};Path Sum II:
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.
For example:Given the below binary tree and
sum = 22
,5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1
return
[ [5,4,11,2], [5,8,4,5]]实现代码:
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<vector<int> > pathSum(TreeNode *root, int sum) { vector<vector<int> > res; vector<int> path; findPath(root, sum, path, res); return res; } void findPath(TreeNode* root, int sum, vector<int> path, vector<vector<int> > & res) { if(root==NULL) return; path.push_back(root->val); if(sum == root->val && root->left==NULL && root->right==NULL) { res.push_back(path); path.pop_back(); return; } if (root->left) findPath(root->left, sum-root->val,path,res); if (root->right) findPath(root->right,sum-root->val,path,res); path.pop_back (); }};
0 0
- Leetcode:Path Sum与Path Sum II
- 【Leetcode】Path Sum II (Sum)
- LeetCode: Path Sum II
- LeetCode Path Sum II
- [Leetcode] Path Sum II
- LeetCode: Path Sum II
- [LeetCode] Path Sum II
- 【leetcode】Path Sum II
- [LeetCode]Path Sum II
- [Leetcode]Path Sum II
- [leetcode]Path Sum II
- Leetcode: Path Sum II
- LeetCode-Path Sum II
- [leetcode] Path Sum II
- LeetCode - Path Sum II
- [LeetCode] Path Sum II
- Leetcode Path Sum II
- LeetCode | Path Sum II
- jeesite框架分析
- 在 Eclipse 3.5中在线安装SVN插件
- 九九矩阵
- VS2010中bitset类型不能用unsigned long类型初始化
- Android Fragment 真正的完全解析(上)
- Leetcode:Path Sum与Path Sum II
- 互联网即时通讯中IP组播技术的应用
- MFC滚动条
- jquery.validate验证使用说明
- 设置窗口颜色
- Spring整合CXF发布WebService
- eeprom 和 flash 区别,及页的概念
- @interface 、类型id
- UITableViewCell标识符说明