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

建设网站网址是多少网站是怎么搭建的

建设网站网址是多少,网站是怎么搭建的,美容产品网站建设多少钱,免费自创网站题目描述 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]示例 2&#xff1…

题目描述

  • 给你二叉树的根节点 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

思路分析

这个问题实际上可以只用一个队列就实现,只需要再增加一个变量levelSize,用来记录每一层的数据个数,然后再让这个队列一层一层的出去。之前的方法中,实际上队列并不是一层一层出去的,它有可能队列里面同时有两层的数据,我们以下面这个图来解释一下原因:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果有两层队列实现的话,3这个节点出来的时候,会让920这两个节点进入队列,而9这个节点出来的时候会让15这个节点进入队列,这个时候队列里面就同时有了第2层和第3层的数据。

所以我们想通过levelSize来达到一个目的:控制这个队列实现一层一层的出去。

那我们要怎么实现呢?我们仍然以刚才的图来进行分析:

3节点进入队列的时候,它的层数为1,由于它是根节点,所以它肯定只有一个,所以3就可以直接出队列。这个时候我们让levelSize进行自减操作它就变成了0,表示这一层已经出完了。

那么由于3节点出的时候会把920也带进来,也就是说当前层的节点全部出队列的时候一定是下一层的节点全部进入队列,这个时候我们将levelSize重新更新为第二层节点的数目也就是2,然后再进行出队列的操作:9节点出队列同时将15节点带进队列,然后levelSize自减变为120节点出队列同时将15节点和7节点带进队列,levelSize再自减变为0。这个时候就说明第二层也出完了。那么此时第三层都在队列里面所以我们再次更新levelSize的值为3,依次类推直到整棵树都被遍历完就实现了只用一个队列实现层序遍历。

那么根据以上的思路,我们就可以写出下面的代码:

完整代码

class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {queue<TreeNode*> q;int levelSize = 0;if (root)//如果根不为空,就入队列{q.push(root);levelSize = 1;}vector<vector<int>> vv;//用来存放一层一层出的节点while (!q.empty())//如果队列不等于空,就说明树还没有被遍历完{//通过levelSize控制一层一层出vector<int> v;//用来存放每一层的数据while (levelSize--)//levelSize是几循环就执行几次,--levelSize表示的则是执行(levelSize - 1)次{TreeNode* front = q.front();//先取队头的数据q.pop();v.push_back(front->val);//进去的同时把该节点的下一层往队列里面带if (front->left)//左如果不为空就让左入队列q.push(front->left);if (front->right)//右如果不为空就让右入队列q.push(front->right);}//走到这里就说明当前层已经出完了,就把当前层所出的数据放到vv里面vv.push_back(v);//更新下一层的数据levelSize = q.size();}return vv;}
};

运行结果
在这里插入图片描述

http://www.yayakq.cn/news/577856/

相关文章:

  • 移动端cpu性能天梯图2023seochinazcom
  • 做条形码哪个网站比较好济南网站建设搜点网络
  • 工具磨床东莞网站建设简单html网页制作代码
  • wordpress手册seo官网制作规划
  • 网站要多少钱 优帮云做的网站里面显示乱码怎么解决
  • 怎样注册自己网站安徽网络营销企业服务
  • 阿里云服务器搭建多个网站用jsp做的网站需要什么工具栏
  • 怎样建设一个韩国网站宠物网站建设方案书
  • 建设一个网站的费用合川网站建设公司
  • 合肥建站工伤做实网站
  • 网站模板制作辽源市网站建设
  • 建一个网站问谁页面设计介绍
  • 泰安网站建设费用邢台发广告的平台有哪些
  • 网站建设费开票收候开在哪个类别里海城seo网站排名优化推广
  • seo整站优化系统网站建设的方法有四种
  • 网站建设和网站搭建哪个好中国做网站最好的
  • 冠县建设局网站阿里云网站目录
  • 合肥网站建设合肥网站制作p2p网站开发方法
  • 网站出现wordpress关于自己公司的网站怎么做
  • ps怎么做网站导航wordpress快速赚钱
  • 安丘网站建设徽州网站建设
  • 网站的基本设置wordpress4.9火车头发布模板
  • 培睿网站开发与设计WordPress音乐歌单播放器
  • 哪个网站做室内效果图厉害威海网站建设价格
  • 乌苏市电力建设工程公司网站苏州园科生态建设集团网站
  • 网站页面构成智慧团建登录app
  • 网站的域名怎么看宿州保洁公司
  • 网站策划方案1500字深圳建设岗位证书报名网站
  • 网站设计服务要不要交文化事业建设费网络营销对传统营销有哪些冲击
  • 网站建设一般做什么文化传播公司做网站宣传好吗