![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归
sorry_maker
博客只图一乐,主要是给我自己看的,不要轻信,有问题欢迎留言
展开
-
leetcode 200岛屿数量
问题描述代码class Solution {private: vector <vector <bool> >visited; int m,n; int move[4][2]={{-1,0},{0,1},{1,0},{0,-1}}; bool effective(int x,int y) { if(x>=0&&x<=m-1&&y>=0&&y<=n-1) re原创 2020-11-02 11:11:09 · 112 阅读 · 0 评论 -
LeetCode113路径总和2递归 二叉树
问题描述代码/** * 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<in原创 2020-09-26 17:20:55 · 83 阅读 · 0 评论 -
*leetcode257二叉树的所有路径递归
代码/** * 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<string> binary.原创 2020-09-26 16:58:32 · 66 阅读 · 0 评论 -
*LeetCode递归 二叉树404左叶子之和
问题描述代码实现/** * 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: int sumOfLeftLeaves(原创 2020-09-26 16:46:27 · 140 阅读 · 0 评论 -
七桥问题,判断图中是否存在欧拉回路
#include <iostream>#include <vector>using namespace std;int n;void dfs(int start,vector <vector <int> > &juzhen,vector <int> &vis){ vis[start]=1; for(int j=1;j<=n;j++) { if(vis[j]==0&&ju原创 2020-09-16 22:52:59 · 514 阅读 · 0 评论 -
落谷二叉树根据前序遍历和中序遍历,输出后序遍历
问题描述思路如果在纸上来写这个题目,我们呢就会发现会有很多重复的,类似的步骤,这就可以利用递归,个人建议自己在纸上画出解题的过程,递归的条件和过程就会比较清楚代码#include <iostream>#include <string>using namespace std;string a,b;//a代表前序遍历,b代表中序遍历void houxu(int x,int y,int p,int q)//x到y表示前序遍历的范围,p到q表示中序遍历范围{ if原创 2020-09-11 11:18:03 · 408 阅读 · 0 评论 -
*递归二叉树LeetCode左叶子之和
问题描述注意事项递归条件必须注意问题是求所有左叶子之和代码/** * 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:原创 2020-09-07 17:24:38 · 394 阅读 · 0 评论 -
递归二叉树LeetCode112路径总和
问题描述注意事项看清楚题目的意思,,是否存在根节点到叶子结点的路径,所以递归的循环终止条件是if(rootNULL) return false;if(root->valsum&&root->leftNULL&&root->rightNULL) return true;/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeN原创 2020-09-07 16:48:39 · 71 阅读 · 0 评论 -
二叉树递归 leetcode110平衡二叉树
问题描述代码/** * 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: int len(TreeNode *a)原创 2020-09-07 16:37:22 · 59 阅读 · 0 评论 -
递归二叉树leetcode 完全二叉树的节点个数
问题描述代码/** * 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: int countNodes(TreeNod原创 2020-09-07 16:15:56 · 96 阅读 · 0 评论 -
递归二叉树LeetCode 101.对称二叉树
问题描述代码/** * 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 { bool check(TreeNode *a,TreeNod原创 2020-09-07 16:09:15 · 80 阅读 · 0 评论 -
递归二叉树 LeetCode 100相同的树
问题描述/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr)原创 2020-09-07 15:40:15 · 56 阅读 · 0 评论 -
递归二叉树leetcode226翻转二叉树
问题描述看到二叉树就用递归准没错代码/** * 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 { TreeNode *t;publ原创 2020-09-07 15:33:47 · 62 阅读 · 0 评论 -
二叉树递归LeetCode111二叉树的最小深度
问题描述代码/** * 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: int minDepth(TreeNode*原创 2020-09-07 14:46:36 · 75 阅读 · 0 评论 -
递归与回溯 LeetCode 40组合总和2
问题描述思路与39题类似的思想 ,不过要注意去掉重复结果代码class Solution { vector <vector <int> > res; vector <int> p; int sum(vector <int> a) { int s=0; for(int i=0;i<a.size();i++) { s+=a[i]; }原创 2020-09-06 20:44:06 · 60 阅读 · 0 评论 -
递归与回溯LeetCode39 组合总和
问题描述思路看题目,明白要枚举所有可能的情况,,就可以使用递归最最重要的一点就是画出树状图,根据树状图敲代码就像依葫芦画瓢代码class Solution { vector <vector <int> > res;//存放总结果的数组 vector <int> p;//存放临时结果的数组 int sum(vector <int> a)//求和函数,求数组a中的所有元素之和 { int s=0;原创 2020-09-06 19:44:38 · 93 阅读 · 0 评论 -
递归与回溯 LeetCode 77.组合
问题描述思路老方法,,看见枚举就用递归代码class Solution {private: vector <vector <int>> res; void dfs(int n,int k,int start,vector <int> &p) { if(p.size()==k) {//套路1,先写什么时候将结果放入res res.push_back(p); }原创 2020-09-06 11:32:24 · 114 阅读 · 0 评论 -
递归与回溯 leetcode93复原Ip地址
问题描述看到枚举,直接想到递归,,看到求字符串子串就用动态规划代码class Solution {public: vector<string> restoreIpAddresses(string s) { vector<string> res;//res保存结果 restore(s, 0, "", res); return res; } void restore(string s, int k, str原创 2020-09-05 21:30:06 · 155 阅读 · 0 评论 -
递归与回溯LeetCode 46全排列
问题描述思路又是枚举问题,可以采用递归回溯的办法,关键是画出树状图代码class Solution {private: vector <bool> judge;//用来判断是否访问过 vector <vector <int> > res; //将结果储存在res中 void f(vector<int>& nums,int index,vector<int> p) { if(ind原创 2020-09-05 18:34:49 · 118 阅读 · 0 评论 -
递归与回溯 LeetCode17电话号码的字母组合
问题描述思路这题一看就知道要求枚举所有的情况,,,可以使用递归代码class Solution {private: map <char ,string> lettermap={//使用映射 {'2',"abc"}, {'2',"abc"}, {'3',"def"}, {'4',"ghi"}, {'5',"jkl"}, {'6',"mno"}, {'7',"pqrs原创 2020-09-05 10:15:41 · 66 阅读 · 0 评论