【Leetcode】662. 二叉树最大宽度

2023-10-27

题目描述

在这里插入图片描述

题解

还记得二叉树层序遍历https://blog.csdn.net/fisherish/article/details/115791079,还有二叉堆的概念,结点如果为 i,那么左子节点值为 i *2,右子节点值为 i * 2 + 1。结合一下本题就能做出来了。

【Leetcode】440. 字典序的第K小数字中,我们确定一层的节点数量,可以用最右节点值减去最左节点值(排好序的情况下)。因此我们可以自己造数据,每一层的节点都从0开始数,赋值为0,每一层的第二个节点赋值为1,以此类推。让最右结点值减去最左结点值 + 1,就是这一层的节点数量。

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    int res = 0;
    
    public int widthOfBinaryTree(TreeNode root) {
        Deque<TreeNode> q = new ArrayDeque<>();
        root.val = 0;
        q.offer(root);
        while (!q.isEmpty()) {
            int size = q.size();
            res = Math.max(res, q.getLast().val - q.getFirst().val + 1);
            while (size > 0) {
                TreeNode node = q.poll();
                System.out.println(node.val);
                size--;
                if (node.left != null) {
                    node.left.val = node.val * 2;
                    q.offer(node.left);
                }
                if (node.right != null) {
                    node.right.val = node.val * 2 + 1;
                    q.offer(node.right);
                }
            }
        }
        return res;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Leetcode】662. 二叉树最大宽度 的相关文章

随机推荐

  • Java 基础 字符输入流读取字符数据

    package demo5 import java io FileInputStream import java io FileOutputStream import java io FileReader import java io IO
  • 华为OD机试 - 宜居星球改造计划(Java)

    题目描述 2XXX年 人类通过对火星的大气进行宜居改造分析 使得火星已在理论上具备人类宜居的条件 由于技术原因 无法一次性将火星大气全部改造 只能通过局部处理形式 假设将火星待改造的区域为row column的网格 每个网格有3个值 宜居区
  • 安卓搭建文件共享服务器,安卓文件共享云服务器搭建

    安卓文件共享云服务器搭建 内容精选 换一换 如果您的业务数据同时保存在数据盘和系统盘中 要想实现业务数据跨帐号迁移 需要用到镜像服务的创建整机镜像 共享镜像等功能 本节操作以Windows操作系统为例 为您详细介绍在同一区域内 跨帐号迁移业
  • IP地址块222.125.80.128/26怎么理解?

    IP地址块222 125 80 128 26包含的可用主机数是多少 最小的地址是多少 最大的地址是多少 IP 26 是CIDR的格式 全称是classless inter domain route 叫做无类域间路由 就是说32位IP的前26
  • 简单理解虚拟机的三种网络适配模式

    仅主机 虚拟机与主机能互ping 但虚拟机不能上网 NAT模式 虚拟机与主机能互ping 虚拟机能上网 但非主机不能访问 桥接模式 虚拟机与主机能互ping 虚拟机能上网 而且非主机可能访问
  • Python Django: urlpatterns 变量的语法

    urlpatterns 变量的语法 1 包含其它的URLconfs 1 1 项目目录结构如下 注 记得在settings py中配置新添加的应用 1 2 不同目录下的urls py配置 2 url别名反向解析 3 url 命名空间 3 1
  • left join on多表关联_MySQL-关联查询

    MySQL 关联查询SQL数据分析 1周前MySQL关联查询前面 我们介绍的都是单表查询 就是只从一张表中获取数据 而实际应用的时候 我们都会同时查询多张表 这里 我们就介绍下 多表关联查询的使用 SQL join 用于根据两个或多个表中的
  • 使用umi快速搭建项目

    1 首先安装umi npm install umi g 2 创建一个文件夹 注意不能是中文 在vscode 中进入文件夹 执行命令生成package json文件 npm init 3 修改配置项 scripts start umi dev
  • 浏览器插件不能自动运行问题的设置方案

    目录 1 环境 2 问题描述 3 解决方案 1 环境 浏览器 Microsoft Edge 版本 117 0 2045 31 正式版本 64 位 设置插件 AdGuard 广告拦截器 2 问题描述 每次打开一个新的网页时 插件都不能自动运行
  • 7.1 参数的点估计

    小结 点估计是一种统计推断方法 它用于通过样本数据估计总体参数的值 在统计学中 总体是指一个包含所有个体的集合 而样本是从总体中选出的一部分个体 总体参数是总体的某种特征 如平均值 标准差 比例等 点估计是指使用样本数据来估计总体参数的一个
  • AtCoder Beginner Contest 219 D - Strange Lunchbox

    D 问当A至少x个 B至少y个的最小方案数 定义dp i j 位A有i个 B有j个的最小方案数 然后枚举 因为问的是至少 所以要遍历A从x B从y开始到300的所有答案 因为可能没有刚好到达x y 如样例1 include
  • 局域网的组成及主要设备的作用

    局域网通常是分布在一个有限地理范内的网络系统 一般所涉及的地理范围只有几公里 通常由一个单位或组织建设拥有的计算机网 局域网由网络硬件 包括网络服务器 网络工作站 网卡 网络互联设备等 和网络传输介质 以及网络软件所组成 网络设备 即网络通
  • 知识推理学习笔记

    知识推理 一 OWL本体语言 1 语法 2 逻辑基础 3 描述逻辑系统 1 最基本的元素 概念 关系 个体 1 概念 解释为一个领域的子集 2 关系 解释为一个领域的二元关系 笛卡尔乘积 3 个体 一个领域内的实例 2 TBox术语集 泛化
  • spring boot整合JMS(ActiveMQ实现)

    一 安装ActiveMQ 具体的安装步骤 请参考我的另一篇博文 http blog csdn net liuchuanhong1 article details 52057711 二 新建spring boot工程 并加入JMS Activ
  • 阿里三面 失败

    update 2015 04 16 在tomcat下一个 使用classloader加载类信息之后将被放置在一类方法区 永久代 当这个类创建一个线程 例如 显示当前的时间段 这会导致此类信息已经在该地区长期存在 作已经完毕了 可是没有把这个
  • 微信小程序模板消息群发、无限制推送相关讲解

    模版消息推送是微信小程序采用的通知形式 用户本人在小程序页面有交互行为后 可触发下发通知 通过微信聊天列表中的服务通知可快捷进入查看消息 此外 点击查看详情还能跳转到下发消息的小程序的指定页面 但是为了避免这种通知被滥用 带来不好的用户体验
  • OFD如何转Word?这2个小窍门,1秒帮助大家完成操作

    你知道OFD如何转Word吗 OFD是一种新型的电子文档格式 具有体积小 解析度高 文本可编辑等特点 受到了越来越多用户的青睐 但在实际应用中 由于部分软件对OFD的支持不足 用户在处理OFD文档时可能会遇到一些困难 其中 将OFD文件转换
  • spring实现属性值的注入

    首先创建一个实体类User Data Builder NoArgsConstructor AllArgsConstructor public class User private String username private Intege
  • 远程办公之:向日葵X 使用教程

    一 X版本简介 向日葵远程控制软件 X版本 是集主被控一体的全新客户端 偏向个人用户 只需要安装一个软件就能达到远程协助 查看主机列表 绑定硬件设备等功能 彻底结束了运行两个程序的历史 让远程操作真正做到 轻装上阵 方便用户实现快速的远程协
  • 【Leetcode】662. 二叉树最大宽度

    题目描述 题解 还记得二叉树层序遍历https blog csdn net fisherish article details 115791079 还有二叉堆的概念 结点如果为 i 那么左子节点值为 i 2 右子节点值为 i 2 1 结合一