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

网站服务器放在哪里好电脑如何安装免费wordpress

网站服务器放在哪里好,电脑如何安装免费wordpress,国内wordpress空间,成都网站建设推广详题目 102. 二叉树的层序遍历 给定二叉树的根节点 root,返回节点值的层序遍历结果。即逐层地,从左到右访问所有节点。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入…

题目

102. 二叉树的层序遍历

给定二叉树的根节点 root,返回节点值的层序遍历结果。即逐层地,从左到右访问所有节点。

示例 1:
在这里插入图片描述
输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]

示例 2:

输入:root = [1] 输出:[[1]]

示例 3:

输入:root = [] 输出:[]

提示:

树中节点数目在范围 [0, 2000] 内
-1000 <= Node.val <= 1000

思考

  • 二叉树的层序遍历是比较常见的题目
  • 此题的难点是如何把每层的节点归类为同一行,如果全部节点都放入队列中直接进行遍历,那么访问的节点可能超出一层
  • 是否需要一个变量,记录本层的节点个数。开始循环遍历队列,本次遍历根据本层的节点个数,将本层节点循环遍历记录下来,在这个过程中同时将本层节点可以访问到的下一层节点存入队列,由于先记录了本层的节点个数,所以这个循环不会超出本层
  • 在这种情况下,每次循环都将本层的节点全部输出,然后将下一层的节点全部加入,所以在开始输出和加入之前,队列中元素的个数就是本层所有节点的个数,所以可以像这样优雅地记录本层的节点个数
for(int i=q.size(); i>0; --i)

解法1:简洁解法

/*** 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>> levelOrder(TreeNode* root) {vector<vector<int>> ans;if(!root) return ans;queue<TreeNode*> q;q.push(root);while(!q.empty()){vector<int> v;for(int i=q.size(); i>0; --i){v.push_back(q.front()->val);if(q.front()->left) q.push(q.front()->left);if(q.front()->right) q.push(q.front()->right);q.pop();}ans.push_back(v);}return ans;}
};

解法2:由二维数组联想到使用二维队列

  • 二维队列中每个小队列包含一层的所有元素
/*** 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>> levelOrder(TreeNode* root) {vector<vector<int>> ans;if(!root) return ans;queue<queue<TreeNode*>> layerSeq;queue<TreeNode*> q;q.push(root);layerSeq.push(q);while(!layerSeq.empty()){vector<int> v;queue<TreeNode*> q;while(!layerSeq.front().empty()){v.push_back(layerSeq.front().front()->val);if(layerSeq.front().front()->left) q.push(layerSeq.front().front()->left);if(layerSeq.front().front()->right) q.push(layerSeq.front().front()->right);layerSeq.front().pop();}if(!q.empty()) layerSeq.push(q);layerSeq.pop();ans.push_back(v);}return ans;}
};
http://www.yayakq.cn/news/558681/

相关文章:

  • 广州网站开发公司哪家好做网站页面的软件
  • 网站怎么做百度认证创立网站成本
  • 做自媒体挣钱的网站有哪些网页制作模板的百度注册中知识
  • 网站建设分金手指排名二六北京网站制作与建设公司
  • 网站降权该怎么做c2c模式类型
  • 网站是否有管理员权限wordpress 仿站教程
  • iis 里没有网站吗自己做的网站为什么不显示图片
  • 企业网站备案怎么搞比较好的企业建站平台
  • 黄冈市住房和城乡建设厅网站品牌营销理论有哪些
  • 郑州学校网站建设呼和浩特市网站
  • 网站的域名不能登录临沂市罗庄区住房和建设局网站
  • 书店网站开发目的和意义企业网站备案是什么意思
  • 商务网站开发实验报告设计都有什么设计
  • dw做网站菜单栏wordpress 从零开始
  • 网站制作价格东莞php 企业网站框架
  • 游戏钓鱼网站怎么做品牌策划包括哪几个方面
  • 孝感网站设计网站建设gzzctyi
  • 做网站怎么弄模板学编程哪个机构有权威
  • 做装修网站android开发技术
  • 上海专业网站制作开发提供服务好的网站建设
  • 网站建设心得体会公司网页网站建
  • 软件网站免费周口市做网站
  • 购物网站排名 2019重庆短视频seo搜索多少钱
  • 将网站打造成网络地区广告代理
  • 网站开发和网络工程师网站设计与网页制作岗位招聘信息
  • 做长直播的房地产网站北京网站建设可选兴田德润
  • 开商城网站游戏网站开发文档
  • 企业集团网站建设长沙品质网站建设优点
  • 高校学生红色网站建设辽宁省锦州市住房与城乡建设厅网站
  • dw做网站 怎么做背景图片上海人才网官方网站