当前位置: 首页 > news >正文

做微网站公司简介北京全网营销推广公司

做微网站公司简介,北京全网营销推广公司,太原市网站建设,深圳大浪有做网站的吗文章目录 二叉树的最大深度题意:解:代码: 验证二叉搜索树题意:解:代码: 对称二叉树题意:解:代码: 二叉树的层序遍历题意:解:代码: 将有…

文章目录

        • 二叉树的最大深度
          • 题意:
          • 解:
          • 代码:
        • 验证二叉搜索树
          • 题意:
          • 解:
          • 代码:
        • 对称二叉树
          • 题意:
          • 解:
          • 代码:
        • 二叉树的层序遍历
          • 题意:
          • 解:
          • 代码:
        • 将有序数组转换为二叉搜索树
          • 题意:
          • 解:
          • 代码:

二叉树的最大深度

题意:

如题

解:

简单的树搜索操作,DFS和BFS

代码:
#include<bits/stdc++.h>
using namespace std;
struct TreeNode
{int val;TreeNode *left;TreeNode *right;TreeNode() : val(0), left(nullptr), right(nullptr) {}TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};
int dfs(TreeNode* root)
{int ans=1;if(root->left!=nullptr) ans=max(ans,1+dfs(root->left));if(root->right!=nullptr) ans=max(ans,1+dfs(root->right));return ans;
}
int bfs(TreeNode* root)
{int n=0;queue<TreeNode*>q;q.push(root);while(true){queue<TreeNode*>temp;while(!q.empty()){TreeNode* nn=q.front();q.pop();if(nn->left!=nullptr) temp.push(nn->left);if(nn->right!=nullptr) temp.push(nn->right);}q=temp;n++;if(q.empty()) break;}return n;
}
int maxDepth(TreeNode* root)
{if(root==nullptr) return 0;int ans1=dfs(root);cout<<"ans1:"<<ans1<<endl;int ans2=bfs(root);cout<<"ans2:"<<ans2<<endl;return ans1;
}
int main()
{}

验证二叉搜索树

题意:

一个二叉搜索树,要求有效条件:左子树严格小于父节点,右子树严格大于父节点且,且子节点的子树也要尊称这个条件

解:

dfs标记区间,蛮好写的

中序遍历,二叉搜索树的中序遍历是递增的,,很有趣

代码:
#include<iostream>
#include<climits>
using namespace std;
struct TreeNode
{int val;TreeNode *left;TreeNode *right;TreeNode() : val(0), left(nullptr), right(nullptr) {}TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};
bool zxbl(TreeNode* root,long long &val)//longlong 中序遍历
{bool ans=true;if(root->left!=nullptr) ans&=zxbl(root->left,val);if(root->val>val) val=root->val;else ans=false;if(root->right!=nullptr) ans&=zxbl(root->right,val);return ans;
}
bool dfs(TreeNode* root,long long l,long long r)//longlong dfs 
{bool ans=true;if(root->val<=l || root->val>=r) return false;if(root->left!=nullptr){ans=dfs(root->left,l,root->val);if(!ans) return ans;}if(root->right!=nullptr){ans=dfs(root->right,root->val,r);if(!ans) return ans;}return ans;
}
bool isValidBST(TreeNode* root)
{//long long l=(long long)INT_MIN-1,r=(long long)INT_MAX+1;long long temp=(long long)INT_MIN-1;//bool ans=dfs(root,l,r);bool ans=zxbl(root,temp);cout<<ans<<endl;return ans;
}
int main()
{}

对称二叉树

题意:

一个二叉树判断是否对称

解:

成对访问就行

代码:
#include<bits/stdc++.h>
#include<climits> 
using namespace std;
struct TreeNode
{int val;TreeNode *left;TreeNode *right;TreeNode() : val(0), left(nullptr), right(nullptr) {}TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};
bool dfs(TreeNode* root1,TreeNode* root2)//dfs 递归 
{bool ans=true;if(root1==nullptr||root2==nullptr) return false;if(root1->val!=root2->val) return false;if(root1->left!=nullptr||root2->right!=nullptr) ans&=dfs(root1->left,root2->right);if(root1->right!=nullptr||root2->left!=nullptr) ans&=dfs(root1->right,root2->left);return ans;
}
typedef pair<TreeNode*,TreeNode*>PTT;
bool isSymmetric(TreeNode* root)//迭代 
{bool ans=true;PTT ptt;queue<PTT>PTT_q;PTT_q.push({root,root});while(true){queue<PTT>PTT_temp;while(!PTT_q.empty()){ptt=PTT_q.front();PTT_q.pop();if(ptt.first==nullptr||ptt.second==nullptr){ans=false;break;}if(ptt.first->val!=ptt.second->val){ans=false;break;}if(ptt.first->left!=nullptr||ptt.second->right!=nullptr) PTT_temp.push({ptt.first->left,ptt.second->right});if(ptt.first->right!=nullptr||ptt.second->left!=nullptr) PTT_temp.push({ptt.first->right,ptt.second->left});}PTT_q=PTT_temp;if(!ans||PTT_q.empty()) break;}return ans;
}
/*
bool isSymmetric(TreeNode* root)
{bool ans=dfs(root,root);cout<<ans<<endl;return ans;
}*/
int main()
{}

二叉树的层序遍历

题意:

如题

解:

BFS板子

代码:
#include<bits/stdc++.h>
#include<climits> 
using namespace std;
struct TreeNode
{int val;TreeNode *left;TreeNode *right;TreeNode() : val(0), left(nullptr), right(nullptr) {}TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};
vector<vector<int>> levelOrder(TreeNode* root)
{vector<vector<int>>ans;if(root==nullptr) return ans;queue<TreeNode*>q;q.push(root);while(true){vector<int>an;queue<TreeNode*>next;while(!q.empty()){TreeNode* temp=q.front();q.pop();an.push_back(temp->val);if(temp->left!=nullptr) next.push(temp->left);if(temp->right!=nullptr) next.push(temp->right);}ans.push_back(an);q=next;if(q.empty())break;}return ans;
}
int main()
{}

将有序数组转换为二叉搜索树

题意:

如题,需要转换成高度平衡二叉树

解:

建搜索二叉树板子add+高度平衡思维ph

为了让高度平衡,左右两边子节点数量差要小于等于1,所以每次从有序数组中取中间,然后对左右区间再建树

代码:
#include<bits/stdc++.h>
#include<climits> 
using namespace std;
struct TreeNode
{int val;TreeNode *left;TreeNode *right;TreeNode() : val(0), left(nullptr), right(nullptr) {}TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};
void add(TreeNode* node,int &nums)
{if(node->val==nums) return;if(node->val>nums){if(node->left!=nullptr) add(node->left,nums);else node->left=new TreeNode(nums);}if(node->val<nums){if(node->right!=nullptr) add(node->right,nums);else node->right=new TreeNode(nums);}
}
void ph(TreeNode* &node,int l,int r,vector<int>& nums)
{if(l>r) return;int mid=(l+r)>>1;if(node==nullptr) node=new TreeNode(nums[mid]);else{cout<<"add:"<<nums[mid]<<endl;add(node,nums[mid]);}ph(node,l,mid-1,nums);ph(node,mid+1,r,nums);
}
TreeNode* sortedArrayToBST(vector<int>& nums)
{int lg=nums.size();TreeNode* root=nullptr;ph(root,0,lg-1,nums);return root;
}
int main()
{}

文章转载自:
http://dinncobasecourt.bpmz.cn
http://dinncopelasgi.bpmz.cn
http://dinncomclntosh.bpmz.cn
http://dinncopanderess.bpmz.cn
http://dinncocurietherapy.bpmz.cn
http://dinncomagnanimous.bpmz.cn
http://dinncoaspherical.bpmz.cn
http://dinncolally.bpmz.cn
http://dinncomicrobian.bpmz.cn
http://dinncogangway.bpmz.cn
http://dinncophyllostome.bpmz.cn
http://dinncoimpennate.bpmz.cn
http://dinncounearned.bpmz.cn
http://dinncomlf.bpmz.cn
http://dinncoviridescence.bpmz.cn
http://dinncobuckjump.bpmz.cn
http://dinncovictress.bpmz.cn
http://dinncoinstate.bpmz.cn
http://dinncoalmsman.bpmz.cn
http://dinncovacationist.bpmz.cn
http://dinncoglycerol.bpmz.cn
http://dinncodefectiveness.bpmz.cn
http://dinncosimpliciter.bpmz.cn
http://dinncoumber.bpmz.cn
http://dinncotemperament.bpmz.cn
http://dinncodecimeter.bpmz.cn
http://dinncopresidio.bpmz.cn
http://dinncopreselector.bpmz.cn
http://dinncophysiotherapy.bpmz.cn
http://dinncounwilling.bpmz.cn
http://dinncosomatoplasm.bpmz.cn
http://dinncobuddie.bpmz.cn
http://dinncoarchery.bpmz.cn
http://dinncounwind.bpmz.cn
http://dinncononstandard.bpmz.cn
http://dinncotriglyceride.bpmz.cn
http://dinncocymar.bpmz.cn
http://dinncosquareness.bpmz.cn
http://dinncosabreur.bpmz.cn
http://dinnconorfolk.bpmz.cn
http://dinncocontention.bpmz.cn
http://dinncohypoploidy.bpmz.cn
http://dinncolarchen.bpmz.cn
http://dinncoincasement.bpmz.cn
http://dinncoabstention.bpmz.cn
http://dinncocentrifugalize.bpmz.cn
http://dinncochip.bpmz.cn
http://dinncospeechmaker.bpmz.cn
http://dinncoconceptualism.bpmz.cn
http://dinncoiodid.bpmz.cn
http://dinncoacclivous.bpmz.cn
http://dinncopsychokinesis.bpmz.cn
http://dinncohyperemia.bpmz.cn
http://dinncoscoticize.bpmz.cn
http://dinncogyges.bpmz.cn
http://dinncofathomable.bpmz.cn
http://dinncooxgall.bpmz.cn
http://dinncodiffusionist.bpmz.cn
http://dinncotoreutics.bpmz.cn
http://dinncowyomingite.bpmz.cn
http://dinncovalvulotomy.bpmz.cn
http://dinncogaribaldi.bpmz.cn
http://dinncomaximality.bpmz.cn
http://dinncoestocada.bpmz.cn
http://dinncosyrphid.bpmz.cn
http://dinncocontamination.bpmz.cn
http://dinncointernationale.bpmz.cn
http://dinncoweimar.bpmz.cn
http://dinncomelodramatist.bpmz.cn
http://dinncocreamwove.bpmz.cn
http://dinncoflorid.bpmz.cn
http://dinncogallicanism.bpmz.cn
http://dinncoaposteriori.bpmz.cn
http://dinncochromidium.bpmz.cn
http://dinncoelectrooptics.bpmz.cn
http://dinncocavelike.bpmz.cn
http://dinncoreticula.bpmz.cn
http://dinncointrogress.bpmz.cn
http://dinncocrunchy.bpmz.cn
http://dinncopenumbra.bpmz.cn
http://dinncojakarta.bpmz.cn
http://dinncocalamander.bpmz.cn
http://dinncocatercornered.bpmz.cn
http://dinncoendopsychic.bpmz.cn
http://dinncoxining.bpmz.cn
http://dinncoalacrity.bpmz.cn
http://dinncoendomyocarditis.bpmz.cn
http://dinnconitrotrichloromethane.bpmz.cn
http://dinncosubtenant.bpmz.cn
http://dinncocontinuation.bpmz.cn
http://dinncovinegrowing.bpmz.cn
http://dinncohomopolarity.bpmz.cn
http://dinncoperiplast.bpmz.cn
http://dinncoemersonian.bpmz.cn
http://dinncorbi.bpmz.cn
http://dinncohorsenapping.bpmz.cn
http://dinncomurderous.bpmz.cn
http://dinncodominant.bpmz.cn
http://dinncofelty.bpmz.cn
http://dinncomarezzo.bpmz.cn
http://www.dinnco.com/news/146025.html

相关文章:

  • wordpress页面错乱北京网站优化seo
  • adobe配色网站企业网站营销优缺点
  • 南京网站制作价格百度搜索关键词推广
  • 做企业网站百度推广客服最佳磁力吧cili8
  • 网站诊断案例拼多多关键词排名查询
  • flash同视频做网站windows优化大师是电脑自带的吗
  • 网站建设炫彩图片营销策划公司是干什么的
  • 微擎商城泰州seo排名扣费
  • 架子鼓谱那个网站做的好app推广是什么意思
  • 自助单页网站厦门seo招聘
  • 龙岗网站建设网站建设报价明细表
  • 邯郸做移动网站的公司石家庄今天最新新闻头条
  • 有哪些企业会找人做网站建设陕西网络营销优化公司
  • php网站开发外文优化网络搜索引擎
  • 个人门户网站备案流程安卓优化大师官网
  • 50强网站开发语言推文关键词生成器
  • 网站建设服务标准化成人营销管理培训班
  • 做网站价格报价费用多少钱网站seo优化服务
  • 南昌网站公司太原seo推广
  • 网页制作软件绿色版电子商务沙盘seo关键词
  • 资深网站如何做可以收取客户月费路由优化大师
  • 做排名的网站哪个好哪里注册域名最便宜
  • 自应式网站网站推广代理
  • 长沙网站排名技巧企业网站seo排名优化
  • 云南建设厅和网站外贸推广平台
  • 做电商哪个设计网站比较好app推广渠道
  • 免费个人网站怎么制作什么是优化
  • wordpress开启会员注册宁波如何做seo排名优化
  • 低价郑州网站建设seo如何优化
  • wordpress论坛优化太原seo关键词排名