leetcode笔记-Path Sum
来源:互联网 发布:好软网络电视绿色版 编辑:程序博客网 时间:2024/05/18 03:08
关于路径问题:
1.输出所有的路径
<pre name="code" class="cpp"> void findPath(vector<vector<int>> &ret,vector<int> tmp, TreeNode* root) { if(root==NULL) return; tmp.push_back(root->val); if(root->left == NULL && root->right == NULL) { ret.push_back(tmp); return; } if(root->left!=NULL) findPath(ret,tmp,root->left); if(root->right!=NULL) findPath(ret,tmp,root->right); //tmp.pop_back(); }//这个程序可以输出从根节点到任意叶节点的路径
2.关于路径和的问题
2.1 返回真假
class Solution {public: bool hasPathSum(TreeNode* root, int sum) { if(root==NULL) return false; if(root->val==sum&&root->left==NULL&&root->right==NULL) return true; return hasPathSum(root->left,sum-root->val)||hasPathSum(root->right,sum-root->val); } };
2.2 返回路径
<pre name="code" class="cpp">class Solution {public: vector<vector<int>> pathSum(TreeNode* root, int sum) { vector<vector<int>> ret; vector<vector<int>> result; vector<int> tmp; findPath(ret,tmp,root); while(!ret.empty()) { vector<int> p; int j=0; p=ret.back(); cout<<p[1]<<endl; for(int i=0;i<p.size();i++) { j=j+p[i]; cout<<p[i]<<endl; //p.pop_back(); //cout<<j<<endl; } if(j==sum) result.push_back(p); ret.pop_back(); } return result; } void findPath(vector<vector<int>> &ret,vector<int> tmp, TreeNode* root) { if(root==NULL) return; tmp.push_back(root->val); if(root->left == NULL && root->right == NULL) { ret.push_back(tmp); return; } if(root->left!=NULL) findPath(ret,tmp,root->left); if(root->right!=NULL) findPath(ret,tmp,root->right); //tmp.pop_back(); }};
0 0
- leetcode笔记:Path Sum
- leetcode笔记-Path Sum
- leetcode笔记:Path Sum II
- leetcode笔记:Minimum Path Sum
- LeetCode笔记:112. Path Sum
- leetcode Path Sum && Path Sum ||
- LeetCode笔记:437. Path Sum III
- [leetCode刷题笔记]112. 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
- 聚类分析之R语言篇 (Kmeans)
- 自定义View步骤
- sip 基本概念
- 自己写的简易的ATM提款机
- Android开发:让TextView文字竖直显示
- leetcode笔记-Path Sum
- Java中接口和抽象类的区别
- javaweb作业制作网页版简易计算器(3种方式)
- 这是一个测试页面
- 博客开通
- c++堆栈中 top() pop()的具体作用是什么
- JavaFX中TextFieldTableCell的颜色问题
- 【高并发简单解决方案】redis缓存队列+mysql 批量入库+php离线整合
- 0412python中文处理小记