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

哈尔滨设计优化公司邹平县seo网页优化外包

哈尔滨设计优化公司,邹平县seo网页优化外包,百度推广登录入口下载,哪个视频网站做视频赚钱的文章目录 前言二叉树最大宽度1.题目解析2.算法原理3.代码编写 总结 前言 二叉树最大宽度 1.题目解析 给你一棵二叉树的根节点 root ,返回树的 最大宽度 。 树的 最大宽度 是所有层中最大的 宽度 。 每一层的 宽度 被定义为该层最左和最右的非空节点(即…

文章目录

  • 前言
  • 二叉树最大宽度
    • 1.题目解析
    • 2.算法原理
    • 3.代码编写
  • 总结


前言

二叉树最大宽度

1.题目解析

给你一棵二叉树的根节点 root ,返回树的 最大宽度 。
树的 最大宽度 是所有层中最大的 宽度 。
每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的 null 节点,这些 null 节点也计入长度。
题目数据保证答案将会在 32 位 带符号整数范围内。

在这里插入图片描述
输入:root = [1,3,2,5,3,null,9]
输出:4
解释:最大宽度出现在树的第 3 层,宽度为 4 (5,3,null,9) 。

在这里插入图片描述
输入:root = [1,3,2,5,null,null,9,6,null,7]
输出:7
解释:最大宽度出现在树的第 4 层,宽度为 7 (6,null,null,null,null,null,7) 。

2.算法原理

思路一:

统计每一层的最大宽度,优先想到的就是层序遍历,把当前层节点全部存在队列中,利用队列的长度计算每一层的宽度就可以统计出最大宽度。

空节点也是现需要计算的,将空节点也存放在队列中。
但是在极端场景下,最左边一条长链,最右边一条长链,我们就需要几亿个节点,超出内存限制。
这个思路是错误的

思路二:

依旧是利⽤层序遍历,但是这⼀次队列⾥⾯不单单存结点信息,并且还存储当前结点如果在数组中存储所对应的下标(在我们学习数据结构 - 堆的时候,计算左右孩⼦的⽅式)这样我们计算每⼀层宽度的时候,⽆需考虑空节点,只需将当层结点的左右结点的下标相减再加 1 即可。

但是,这⾥有个细节问题:如果⼆叉树的层数⾮常恐怖的话,我们任何⼀种数据类型都不能存下下标
的值。但是没有问题,因为
• 我们数据的存储是⼀个环形的结构;
• 并且题⽬说明,数据的范围在 int 这个类型的最⼤值的范围之内,因此不会超出⼀圈;
• 因此,如果是求差值的话,我们⽆需考虑溢出的情况。

3.代码编写

class Solution {
public:int widthOfBinaryTree(TreeNode* root) {queue<pair<TreeNode*,unsigned int>>q;if(root==nullptr){return 0;}q.push({root,1});unsigned int maxlen=1;while(!q.empty()){int n=q.size();unsigned int begin=q.front().second;unsigned int end=q.back().second;maxlen=max(maxlen,end-begin+1);for(int i=0;i<n;i++){TreeNode*t=q.front().first;if(t->left){q.push({t->left,q.front().second*2});}if(t->right){q.push({t->right,q.front().second*2+1});}q.pop();}}return maxlen;}
};

总结

以上就是今天要讲的内容。希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘

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

相关文章:

  • 建设微信网站的流程关于加快信用平台网站建设通知
  • 南京网站关键词优化字节小程序开发教程
  • 精品网站建设费用磐石网络名气做任务挣钱的网站app
  • ppt中超链接网站怎么做山东建设网站公司
  • 如何利用wordpress编辑网站做论坛网站如何赚钱的
  • 做网站如何推广房屋装修效果图怎么制作
  • 上海网站排名优化怎么做网页建站软件
  • 公司宣传网站建站信息流广告投放
  • 学校网站模板免费下载江门网站平台建设
  • 支付网站开发费分录个人服务器网站备案
  • 烟台做网站推广的公司哪家好北京天恒建设工程有限公司网站
  • 网站开发如何支持ipv6wordpress博客联盟
  • 购买的网站平台建设服务计入网站建设的流程是什么意思
  • 稼禾建设集团网站网站站内搜索怎么做
  • 电子政务网站建设法律法规西安做网站电话
  • 商务网站创建多少钱网页设计与实现论文
  • 株洲市做公司官方网站眉山建设银行官方网站
  • 阿城区建设小学网站泰安市建设职工培训中心网站官网
  • 做网站系统具体步骤软文营销经典案例200字
  • 无锡网站建设wkstt长沙seo培训
  • 萍乡土建设计网站网站服务商
  • 如何增加网站关键词密度免费seo排名优化
  • 湖南做网站的公司公司网站开发项目管理制度
  • 广州专业做网站泉州企业网站开发
  • 电子商务网站开发技术支持免费做公众号的网站
  • 网站开发课设简述软件开发过程
  • wordpress中标签作用企业网站建设网站优化
  • 佛山专业做网站旅游类网站策划建设_
  • 全网视频合集网站建设个人网站设计成首页
  • 做网站建设的企业还有那些html表白简单代码