LeetCode 113:Path Sum II
来源:互联网 发布:青岛工程咨询院 知乎 编辑:程序博客网 时间:2024/05/16 01:53
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]]
Subscribe to see which companies asked this question
class Solution { public: vector<vector<int>> pathSum(TreeNode* root, int sum) { vector<vector<int>> res; vector<int> tmp; //保存中间结果 tmpFunction(root, sum, tmp, res); return res; } void tmpFunction(TreeNode* root, int sum, vector<int> &tmp, vector<vector<int>>&res){ if (root == NULL) return; tmp.push_back(root->val); if (root->left == NULL && root->right == NULL){ if (root->val == sum) res.push_back(tmp); } tmpFunction(root->left, sum - root->val, tmp, res); tmpFunction(root->right, sum - root->val, tmp, res); tmp.pop_back(); } };
#include<iostream>#include<new>#include<vector>using namespace std;//Definition for binary treestruct 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> > path;vector<int> tmp;hasPathSum(root, sum, path, tmp);return path;}void hasPathSum(TreeNode *root, int sum, vector<vector<int> > &path, vector<int> tmp){if (root == NULL)return;tmp.push_back(root->val);if (root->left == NULL&&root->right == NULL && (sum - root->val) == 0){path.push_back(tmp);}if (root->left)hasPathSum(root->left, sum - root->val, path, tmp);if (root->right)hasPathSum(root->right, sum - root->val, path, tmp);tmp.pop_back();}void createTree(TreeNode *&root){int i;cin >> i;if (i != 0){root = new TreeNode(i);if (root == NULL)return;createTree(root->left);createTree(root->right);}}};int main(){Solution s;TreeNode *root;s.createTree(root);vector<vector<int> > path = s.pathSum(root, 22);for (auto a : path){for (auto v : a)cout << v << " ";cout << endl;}system("pause");return 0;}
1 0
- LeetCode 113: Path Sum II
- LeetCode(113)Path Sum II
- LeetCode: Path Sum II [113]
- [leetcode 113] Path Sum II
- [LeetCode 113]Path Sum II
- leetcode || 113、Path Sum II
- Leetcode[113]-Path Sum II
- Path Sum II - LeetCode 113
- LeetCode(113) Path Sum II
- Leetcode #113 Path Sum II
- leetcode 113: Path Sum II
- LeetCode 113: Path Sum II
- LeetCode 113 Path Sum II
- LeetCode 113:Path Sum II
- LeetCode 113 Path Sum II
- leetcode 113 Path Sum II
- Leetcode 113 Path Sum II
- leetcode 113 Path Sum II
- jms的failover方式
- 调用没有在AndroidManifest.xml注册过的Activity,报出的错误提示
- OpenSeadragon 显示多图自带放大缩小功能的JS插件(支持桌面和手机)
- 一些感悟
- ListView 优化之---ViewHolder static修饰符
- LeetCode 113:Path Sum II
- ListView和GridView调用notifyDataSetChanged界面不刷新
- 用HOG、LBP、Haar特征训练自己的分类器
- SQLite 获取最新插入数据的自增长主键ID
- android sudio 如何获取自带和打包签名时的sha1与md5值
- 常用正则表达式
- hiho挑战赛17 A String Problem I
- socket选项总结(setsocketopt)
- Android学习路线(-)