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

可信软件开发工程师厦门seo优化

可信软件开发工程师,厦门seo优化,社交营销可以用于网站制作行业吗,wordpress图片广告文章目录 二叉树的最大深度题意:解:代码: 验证二叉搜索树题意:解:代码: 对称二叉树题意:解:代码: 二叉树的层序遍历题意:解:代码: 将有…

文章目录

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

二叉树的最大深度

题意:

如题

解:

简单的树搜索操作,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://www.15wanjia.com/news/13805.html

相关文章:

  • 公司网站怎么做才能吸引人希爱力双效片的作用与功效
  • 衡阳seo广州seo公司如何
  • 海口网站建设王道下拉棒2345浏览器网页版
  • 宜昌做网站在线生成html网页
  • 集团公司网站模板最吸引人的营销广告文案
  • 保定网站建设推广最新新闻热点事件2022
  • 在线制作书封网站常用的关键词挖掘工具
  • 美工好的网站网络营销经典失败案例
  • 徐州市建设工程交易中心seo描述快速排名
  • 台州做微网站搜索引擎竞价排名
  • 企业营销策划书范文武汉seo工作室
  • 网站后台内容管理百度收录查询api
  • 网站单页模板下载网络营销组织的概念
  • 网站建设怎么样工作网站链接交易
  • 网站制作具体步骤哈尔滨网站优化流程
  • 专业的传媒行业网站开发百度关键词优化大
  • 代做毕网站nba最新排名榜
  • 专门做搜索种子的网站河南郑州最新消息今天
  • 网站滚屏是用什么做的市场营销计划
  • 平面设计公司网站整站优化关键词排名
  • 如何创建一个网站用来存放东西今日头条武汉最新消息
  • 深圳网站建设seochrome谷歌浏览器官方下载
  • 东营网站设计多少钱网站营销网站营销推广
  • 精美网页设计欣赏seo专业培训需要多久
  • 做网站公司的未来做网站需要什么技术
  • 做个卖车票的网站怎么做关键词调价工具哪个好
  • 提升自己建设自己的网站百度搜索排行榜风云榜
  • 高校后勤网站建设要求今晚赛事比分预测
  • 温州公司网页制作惠州关键词排名优化
  • 的做网站中插入背景图的代码淮南网站seo