[leetcode] 113. Path Sum II
来源:互联网 发布:arm7 java 编辑:程序博客网 时间:2024/05/21 11:32
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 a binary tree node. * 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) { if(!root) return {}; vector<vector<int>> res; vector<int> out; pathSum(res, out, root, sum); return res; } void pathSum(vector<vector<int>>&res, vector<int>& out, TreeNode* root, int sum){ if(!root) return; if(!root->left&&!root->right){ if(root->val==sum){ out.push_back(root->val); res.push_back(out); out.pop_back(); return; }else return; } out.push_back(root->val); pathSum(res, out, root->left, sum-root->val); out.pop_back(); out.push_back(root->val); pathSum(res, out, root->right, sum-root->val); out.pop_back(); }};
解法二:
更加简洁点。
/** * 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: vector<vector<int>> pathSum(TreeNode* root, int sum) { if(!root) return {}; vector<vector<int>> res; vector<int> out; out.push_back(root->val); pathSum(res, out, root, sum); return res; } void pathSum(vector<vector<int>>&res, vector<int>& out, TreeNode* root, int sum){ if(!root->left&&!root->right&&root->val==sum){ res.push_back(out); } if(root->left){ out.push_back(root->left->val); pathSum(res, out, root->left, sum-root->val); out.pop_back(); } if(root->right){ out.push_back(root->right->val); pathSum(res, out, root->right, sum-root->val); out.pop_back(); } }};
0 0
- 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
- 113. Path Sum II LeetCode
- 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
- 华为笔试题:地铁换乘问题
- 汇编语言之寻址方式
- Mysql海量数据存储和解决方案之一—分布式DB方案
- Mule,目前综合状态最良好的开源ESB方案
- 页面被重置
- [leetcode] 113. Path Sum II
- 非阻塞/异步(epoll) openssl
- 计算机网络总结
- [PAT] B1031
- CSS text-transform 属性
- maven web基于spring+mybatis+springmvc框架搭建选课网站系统
- idea中更改svn的commit message
- 兼容IE6的jQuery多功能表格插件Param Query Grid
- leetcode 25. Reverse Nodes in k-Group