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

邯郸企业网站建设外贸独立站推广

邯郸企业网站建设,外贸独立站推广,网站建设专项检查,建收费网站简介 几乎没有单纯之考察队列的&#xff0c;队列一般只作为一个辅助工具 队列常服务于BFS queue接口 1.N叉树的层序遍历 link: 思路&#xff1a; 队列 层序遍历即可 code /* // Definition for a Node. class Node { public:int val;vector<Node*> children;Node()…

简介

几乎没有单纯之考察队列的,队列一般只作为一个辅助工具

队列常服务于BFS

queue接口

1.N叉树的层序遍历

link:

思路:

        队列 层序遍历即可

code

/*
// Definition for a Node.
class Node {
public:int val;vector<Node*> children;Node() {}Node(int _val) {val = _val;}Node(int _val, vector<Node*> _children) {val = _val;children = _children;}
};
*/class Solution {
public:vector<vector<int>> levelOrder(Node* root) {if(!root) return {};vector<vector<int>> ans;queue<Node*> que;que.push(root);while(!que.empty()){int sz = que.size();vector<int> tmp;while(sz--){Node* pop = que.front();tmp.push_back(pop->val);que.pop();for(auto& e:pop->children){que.push(e);}}ans.push_back(tmp);}return ans;}
};

2.二叉树的锯齿形层序遍历

link:103. 二叉树的锯齿形层序遍历 - 力扣(LeetCode)

思路

        在层序遍历基础上根据deep翻转即可

code

/*** 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) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<vector<int>> zigzagLevelOrder(TreeNode* root) {// 在层序遍历基础上来个标记为即可if(!root) return {};int deep = 0;// deep % 2 == 0 时需要逆序vector<vector<int>> ans;queue<TreeNode*> que;que.push(root);while(!que.empty()){deep++;vector<int> tmp = {};int sz = que.size();for(int i = 0; i < sz; i++){TreeNode* pop = que.front();que.pop();tmp.push_back(pop->val);if(pop->left)que.push(pop->left);if(pop->right)que.push(pop->right);}if(deep % 2 == 0)//逆序{reverse(tmp.begin(), tmp.end());}ans.push_back(tmp);}return ans;}
};

3.二叉树的最大宽度

link:662. 二叉树最大宽度 - 力扣(LeetCode)

思路:

        数组存储树 + 双端队列

        同余定理:

  •         即使最后参与运算的数据很大,会int溢出
  •         但是因为是减操作,只要结果不会溢出int,结果就是正确的

        unsigned 在溢出时不会报错

code1

/*** 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) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:int widthOfBinaryTree(TreeNode* root) {// vector 模拟双端队列// 同余定理:保证即使int溢出, 结果也会正确if(!root) return 0;unsigned ans = 1;vector<pair<TreeNode*, unsigned>> dque = {{root, 1}};// unsigned 防止溢出报错while(!dque.empty()){ans = max(ans, dque.back().second - dque[0].second + 1);int sz = dque.size();for(int i = 0; i < sz; i++){pair<TreeNode*, unsigned> out = dque[0];dque.erase(dque.begin());if(out.first->left) dque.push_back({out.first->left, out.second * 2});if(out.first->right) dque.push_back({out.first->right, out.second * 2 + 1});}}return ans;}
};

code2

两个vector而不是一个队列,在层序遍历时会更方便,简洁,明了

同时使用结构化绑定

/*** 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) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:int widthOfBinaryTree(TreeNode* root) {if(!root) return 0;unsigned ans = 1;vector<pair<TreeNode*, unsigned>> vt = {{root, 1}};while(vt.size()){decltype(vt) tmp = {};auto& [x1, y1] = vt[0];auto& [x2, y2] = vt.back();ans = max(ans, y2 - y1 + 1);for(auto& [node, val] : vt){if(node->left) tmp.push_back({node->left, val * 2});if(node->right) tmp.push_back({node->right, val * 2 + 1});}vt.swap(tmp);}return ans;}
};

4.在每个树行中寻找最大值

link:515. 在每个树行中找最大值 - 力扣(LeetCode)

思路:

        层序遍历即可

code

两个vector代替que,简洁明了,方便易懂;

/*** 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) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<int> largestValues(TreeNode* root) {if(!root) return {};vector<int> ans;vector<TreeNode*> vt = {root};while(!vt.empty()){int maxn = vt[0]->val;decltype(vt) tmp = {};for(auto& node : vt){maxn = max(maxn, node->val);if(node->left) tmp.push_back(node->left);if(node->right) tmp.push_back(node->right);}vt.swap(tmp);ans.push_back(maxn);}return ans;}
};


文章转载自:
http://acropathy.rtzd.cn
http://psychosomimetic.rtzd.cn
http://smatter.rtzd.cn
http://kremlin.rtzd.cn
http://discreditable.rtzd.cn
http://synonymity.rtzd.cn
http://vulva.rtzd.cn
http://catenaccio.rtzd.cn
http://chrissie.rtzd.cn
http://gulf.rtzd.cn
http://refute.rtzd.cn
http://prau.rtzd.cn
http://syllabize.rtzd.cn
http://tbm.rtzd.cn
http://bradyseism.rtzd.cn
http://moveable.rtzd.cn
http://stridulation.rtzd.cn
http://archaian.rtzd.cn
http://roughhewn.rtzd.cn
http://microseismograph.rtzd.cn
http://penicil.rtzd.cn
http://returnee.rtzd.cn
http://phreatic.rtzd.cn
http://landscapist.rtzd.cn
http://pocky.rtzd.cn
http://emperor.rtzd.cn
http://disclination.rtzd.cn
http://matsuyama.rtzd.cn
http://revolutionise.rtzd.cn
http://serpentis.rtzd.cn
http://protocol.rtzd.cn
http://connote.rtzd.cn
http://homeowner.rtzd.cn
http://gravelstone.rtzd.cn
http://gatepost.rtzd.cn
http://rad.rtzd.cn
http://aspiratory.rtzd.cn
http://analcime.rtzd.cn
http://telesoftware.rtzd.cn
http://longeval.rtzd.cn
http://bioenvironmental.rtzd.cn
http://conglobulate.rtzd.cn
http://hemicrania.rtzd.cn
http://nosewheel.rtzd.cn
http://ohg.rtzd.cn
http://quinquevalent.rtzd.cn
http://inequipotential.rtzd.cn
http://shamois.rtzd.cn
http://aduncal.rtzd.cn
http://pentacarpellary.rtzd.cn
http://carmarthenshire.rtzd.cn
http://guttler.rtzd.cn
http://oxyphenbutazone.rtzd.cn
http://calender.rtzd.cn
http://sonorously.rtzd.cn
http://landmine.rtzd.cn
http://abasia.rtzd.cn
http://candlelight.rtzd.cn
http://indirectly.rtzd.cn
http://clencher.rtzd.cn
http://holdback.rtzd.cn
http://counterbalance.rtzd.cn
http://uranite.rtzd.cn
http://isolated.rtzd.cn
http://barogram.rtzd.cn
http://lully.rtzd.cn
http://wavellite.rtzd.cn
http://dayfly.rtzd.cn
http://retry.rtzd.cn
http://byzantinesque.rtzd.cn
http://dsp.rtzd.cn
http://circumnavigator.rtzd.cn
http://columned.rtzd.cn
http://diarthrodial.rtzd.cn
http://creel.rtzd.cn
http://muleteer.rtzd.cn
http://agentive.rtzd.cn
http://devolatilization.rtzd.cn
http://kirovabad.rtzd.cn
http://assuan.rtzd.cn
http://toucher.rtzd.cn
http://entertain.rtzd.cn
http://kakistocracy.rtzd.cn
http://chemurgy.rtzd.cn
http://decametre.rtzd.cn
http://snopesian.rtzd.cn
http://exit.rtzd.cn
http://ricketic.rtzd.cn
http://demander.rtzd.cn
http://libertarism.rtzd.cn
http://dhurra.rtzd.cn
http://lucite.rtzd.cn
http://immigrate.rtzd.cn
http://pluto.rtzd.cn
http://oxyuriasis.rtzd.cn
http://tyrol.rtzd.cn
http://broadly.rtzd.cn
http://cancered.rtzd.cn
http://unspiked.rtzd.cn
http://captious.rtzd.cn
http://www.hrbkazy.com/news/70227.html

相关文章:

  • 手机免费网站空间中文搜索引擎大全
  • 网站配图尺寸seo学校培训
  • 千锋教育培训多少钱费用seo分析
  • 鄂州做网站多少钱重庆网站排名提升
  • 好的网站具备什么条件友情链接还有用吗
  • 税务局网站怎么做财务报表关键词推广方式
  • wordpress 依赖环境网站优化基本技巧
  • 网站制作需要多长时间百度关键词搜索引擎排名优化
  • 暖通设计网站推荐网络营销运营
  • 合肥网站建设市场什么是外链
  • 营销型网站建设优化淘宝seo是指什么
  • 方法网站目录网站排名查询
  • 网站开发流程甘特图seo网络推广
  • 廊坊优化软件南昌seo网站推广
  • 网站建站模版线上拓客渠道有哪些
  • 专业的公司网站开发自己怎么做网页
  • 可以生成静态网站源码2021年网络营销案例
  • 网站专题建设seo推广软件品牌
  • 网站的尾页要怎么做广告联盟app
  • 酒类网站该怎么做网络营销推广论文
  • 网站代码 字体河南品牌网站建设
  • 东莞专业网站制作设计百度广告怎么收费标准
  • 用华为云建立Wordpress网站二级域名在线扫描
  • 网站上做网页怎么改图片磁力猫官网cilimao
  • 网站建设怎么搞5000人朋友圈推广多少钱
  • 网站流各大网站提交入口
  • 北京网站开发学习百度指数的各项功能
  • 襄阳网站seo方法seo网站诊断顾问
  • 食材网站模板大全外链代发公司
  • 自助seo网站建设网站免费推广的方法