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

厦门网站建设官网网站建设网络推广seo

厦门网站建设官网,网站建设网络推广seo,安装好的 wordpress,天水网站建设公司排名这篇博客是关于队列宽搜的几道题&#xff0c;主要包括N叉树的层序遍历、二叉树的锯齿形层序遍历、二叉树最大宽度、在每个数行中找最大值。 class Solution { public:vector<vector<int>> levelOrder(Node* root) {vector<vector<int>> ret;if(!root) …

这篇博客是关于队列+宽搜的几道题,主要包括N叉树的层序遍历、二叉树的锯齿形层序遍历、二叉树最大宽度、在每个数行中找最大值。

class Solution {
public:vector<vector<int>> levelOrder(Node* root) {vector<vector<int>> ret;if(!root) return ret;queue<Node*> q;q.push(root);while(q.size()){int num = q.size();  //先求出本层的元素个数vector<int> tmp;  //统计本层的节点while(num--){Node* top = q.front();q.pop();tmp.push_back(top->val);for(auto e : top->children){if(e != nullptr)q.push(e);}}ret.push_back(tmp);}return ret;}
};

题目分析:这道题我们需要层序遍历,需要借助一个队列实现,首先将第一层节点放进队列,然后出队列,在出队列后,把它的孩子节点都push到队列中,再依次把这几个孩子节点出队列,每一个节点出队列后,都要马上把它的孩子节点push到队列。为了知道每层有几个节点,在每一层出队列前,需要统计队列里的元素个数。

 

class Solution {
public:vector<vector<int>> zigzagLevelOrder(TreeNode* root) {vector<vector<int>> ret;if(!root) return ret;queue<TreeNode*> q;q.push(root);int flag = 1;while(q.size()){int sz = q.size();vector<int> tmp;for(int i = 0 ; i < sz ; i++){TreeNode* top = q.front();q.pop();tmp.push_back(top->val);if(top->left) q.push(top->left);if(top->right) q.push(top->right);}if(flag % 2 == 0){reverse(tmp.begin(), tmp.end());}ret.push_back(tmp);flag++;}return ret;}
};

题目分析:仍然是使用队列来存放节点,和上一题不同的是,在得到偶数层的队列后,需要将其逆序一下,可以通过创建一个变量来判断奇偶层。

class Solution {
public:int widthOfBinaryTree(TreeNode* root) {vector<pair<TreeNode*,unsigned int>> queue;unsigned int ret = 0;queue.push_back({root, 1});while(queue.size()){auto& [x1, y1] = queue[0];auto& [x2, y2] = queue.back();ret = max(ret, y2 - y1 + 1);vector<pair<TreeNode*,unsigned int>> tmp;for(auto& [x, y] : queue){if(x->left) tmp.push_back({x->left, 2*y});if(x->right) tmp.push_back({x->right, 2*y + 1}); }queue = tmp;} return ret;}
};

题目分析:这道题我们可以使用数组存储二叉树的方式,给节点编号,数组的类型为pair<TreeNode*,int>,int为这个节点的编号,一层的两端节点编号相减+1就是这层的宽度。

需要注意的是,下标可能溢出,所以不能用int存储节点编号,而是用unsigned int 存储。

class Solution {
public:vector<int> largestValues(TreeNode* root) {queue<TreeNode*> q;vector<int> ret;if(!root) return ret;q.push(root);// ret.push_back(root->val);while(q.size()){int size = q.size();int m = INT_MIN;while(size--){TreeNode* top = q.front();q.pop();m = max(m, top->val);if(top->left) q.push(top->left);if(top->right) q.push(top->right);}ret.push_back(m);}return ret;}
};

题目分析:很简单,利用层序遍历,统计每一层的最大值。

http://www.tj-hxxt.cn/news/52054.html

相关文章:

  • 政府网站集约化建设模式研究包头整站优化
  • m99ww094cn 苍井空做的网站友情链接交换系统
  • html5响应式网站模板友情手机站
  • wordpress 登陆可见网站搜索引擎优化方案的案例
  • 我只做过web网站 怎么做APPseo搜索引擎优化就业指导
  • 百度怎么做开锁网站googleplay官方下载
  • 郑州高端做网站互联网公司网站模板
  • 网站运营工作流程今日百度搜索风云榜
  • 如何做网上私人彩票网站站长之家网站排行榜
  • 怎么做提取微信62的网站网站seo链接购买
  • 7万字短篇小说哪家网站做的好营销推广的作用
  • 鸡西seo顾问sem和seo是什么
  • 深圳做电子工厂的网站德芙巧克力软文推广
  • 网站设计的基本过程互联网推广是做什么的
  • 成都设计公司创业园厦门seo新站策划
  • 福州专业做网站的公司有哪些郑州网站建设推广
  • 商城网站的建设费用安徽做网站公司哪家好
  • 新疆生产建设兵团人力资源网站网页生成器
  • 我想看b站直播怎百度网盘搜索引擎入口
  • 宿迁做网站 宿迁网站建设营销网络的建设
  • 计算机专业培训机构排名青岛谷歌优化
  • 网站和管理系统哪个更难做百度投放广告
  • 263官网首页排名优化公司电话
  • 中国建设网站银行卡吗百度网站管理员工具
  • 怎样做网贷网站汕头网站建设方案外包
  • 0735郴州网搜索引擎优化是什么
  • 网站做支付链接安全吗seo建站还有市场吗
  • 企业网站制作是什么网络推广的途径有哪些
  • 武汉地区网站建设网站seo外链
  • 广告链接网页怎么做的佛山百度快照优化排名