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

一个人做网站用什么技术甲马营seo网站优化的

一个人做网站用什么技术,甲马营seo网站优化的,各大网站发布信息,陕西省建设造价协会网站662. 二叉树最大宽度 给你一棵二叉树的根节点 root ,返回树的 最大宽度 。 树的 最大宽度 是所有层中最大的 宽度 。 每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相…

662. 二叉树最大宽度

给你一棵二叉树的根节点 root ,返回树的 最大宽度

树的 最大宽度 是所有层中最大的 宽度

每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的 null 节点,这些 null 节点也计入长度。

题目数据保证答案将会在  32 位 带符号整数范围内。

示例 1:

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

示例 2:

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

示例 3:

输入:root = [1,3,2,5]
输出:2
解释:最大宽度出现在树的第 2 层,宽度为 2 (3,2) 。

 最初版本,没有理解题意,直接使用队列计算每行最多的元素,也就是每层最多多少个结点。

class Solution {
public:int widthOfBinaryTree(TreeNode* root) {int maxwid = 0;queue<TreeNode*> q;if(root)q.push(root);while(!q.empty()){int size = q.size();maxwid = max(size, maxwid);while(size--){TreeNode* cur = q.front();q.pop();if(cur->left)q.push(cur->left);if(cur->right)q.push(cur->right);}}return maxwid;}
};

实际上是有问题的,这道题是包含了以下这些红色空节点在内的。从 6 到 7 加上中间空节点来计算这个二叉树最大的宽度。

思路一:插入空节点

仍旧使用上述的代码,只是在判断左右孩子是否存在时,再为空的情况下做一个插入一个空节点这样的方式来进行。每访问一层的时候使用empty变量来记录当前层空节点个数,以此来计算最大宽度,不过出现右边这个图的情况下就会溢出。

思路二:利用数组存储二叉树的方式,给节点进行编号

使用数组存储二叉树的方式,给结点进行编号(联想完全二叉树、堆使用数组来进行下标访问),如果有下标的情况下,那么求第四层的宽度就可以直接使用 15-8+1   第三层:7-4+1  m-n+1

 队列中存放结点为一个键值对pair类型,first为二叉树结点指针,second为二叉树数组顺序下标。


class Solution {
public:int widthOfBinaryTree(TreeNode* root) {queue<pair<TreeNode*, unsigned int>> q;由于数字溢出使用 unsigned int 类型unsigned int maxwid = 0;if(root)q.push(pair(root, 1));while(!q.empty()){1、确定队头队尾之间的宽度并更新maxwidauto fro = q.front();auto bac = q.back();maxwid = max(maxwid, bac.second - fro.second + 1);2、一层一层的进行插入队列int size = q.size();while(size--){auto cur = q.front();q.pop();if(cur.first->left)q.push(pair(cur.first->left, 2 * cur.second));if(cur.first->right)q.push(pair(cur.first->right, 2 * cur.second + 1));}}return maxwid;}
};

总结:这道题算是熟练掌握auto、pair键值对中对于first、second的访问与运算、无符号整形来控制溢出、队列、二叉树顺序存储,很不错挺综合的一道题目。有种考研后期刷线代、高数综合大题的感觉了

http://www.dtcms.com/wzjs/486334.html

相关文章:

  • 成都市城乡建设局网站百度收录的网站多久更新一次
  • 网站描述怎么设置百度关键词快排
  • 重庆专业平台推广公司优化网站技术
  • phpwind转WordPress抖音优化排名
  • 阜阳做网站seo关键词优化怎么收费
  • 网站备案提交信息吗今日网站收录查询
  • 荥阳网站建设sem账户托管
  • github允许做网站服务器产品推销方案
  • 天马网络网站搜索引擎seo如何优化
  • 做ppt好的网站有哪些重庆网站建设
  • 做网站如何推广长春网站关键词排名
  • 如何做网站seo市场调研报告最佳范文
  • 网站建设实验分析总结2023年6月份疫情严重吗
  • 台州服务网站网站维护需要多长时间
  • 虚拟币交易网站源码电视剧排行榜百度搜索风云榜
  • 常宁市网站建设海外自媒体推广
  • 网站公告怎么做seo在线优化工具
  • 国外做彩票网站推广是合法的吗郑州竞价托管公司哪家好
  • java做租房网站项目设计如何申请百度竞价排名
  • 手机网站开发语言sem工作内容
  • 室内装饰设计平面图零基础学seo要多久
  • 秦皇岛营销式网站企业网站搜索优化网络推广
  • 专门做宠物食品的网站宁波网络推广公司有哪些
  • 企业域名申请流程西安seo服务商
  • 智慧景区网站建设软文街
  • wordpress 编辑器 换行优化设计答案六年级上册
  • 南昌正规网站公司吗新媒体运营
  • 带做网站价位网络平台建站
  • 我的网站突然找不到网页了网络营销有哪些方式
  • 樟木头网站设计网站接单