首页 > 编程语言 >[Python手撕]二叉树最大宽度

[Python手撕]二叉树最大宽度

时间:2024-09-23 10:36:02浏览次数:6  
标签:node right Python max self next 宽度 二叉树 size

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def widthOfBinaryTree(self, root: Optional[TreeNode]) -> int:
        cur_size = 1
        next_size = 0
        queue = [[root, 1]]
        max_width = 1

        while queue:
            level = []
            for _ in range(cur_size):
                node, index = queue.pop(0)
                level.append(index)
                if node.left:
                    queue.append([node.left, index * 2])
                    next_size += 1
                if node.right:
                    queue.append([node.right, index * 2 + 1])
                    next_size += 1
            cur_size = next_size
            next_size = 0
            max_width = max(max_width, level[-1] - level[0] + 1)
            print(level)

        return max_width

标签:node,right,Python,max,self,next,宽度,二叉树,size
From: https://www.cnblogs.com/DCFV/p/18426576

相关文章

  • [oeasy]python035_根据序号得到字符_chr函数_字符_character_
    字符(character)回忆上次内容上次了解了ord函数ord的意思是ordinal(序号)ord函数可以根据字符得到序号那么可以反过来吗?根据序号得到字符可以吗?......
  • [Python手撕]判断回文链表
    #Definitionforsingly-linkedlist.#classListNode:#def__init__(self,val=0,next=None):#self.val=val#self.next=nextclassSolution:defisPalindrome(self,head:Optional[ListNode])->bool:deffindmid(he......
  • python获取kafka队列长度
    #pipinstallkafka-pythonfromkafkaimportKafkaConsumerfromkafka.structsimportTopicPartitiondefget_queue_length(topic_list,kafka_host,kafka_group):partition_list=[TopicPartition(it[1],0)foritintopic_list]consumer=KafkaCons......
  • 【Python高级编程案例】-第1课时-Python 自带邮件模块自动发送邮件
    importrandomimportstringfromsmtplibimportSMTP_SSLfromemail.mime.textimportMIMETextfromemail.headerimportHeader#发送邮件,参数为收件邮箱地址和验证码defsend_email(receiver,code):sender="测试<[email protected]>"#邮箱账号,签名#......
  • 基于Python+Vue开发的体育场馆预约管理系统
    项目简介该项目是基于Python+Vue开发的体育场馆预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的体育场馆预约管理系统项目,大学生可以在实践中学习和提......
  • 基于Python+Vue开发的房产销售管理系统
    项目简介该项目是基于Python+Vue开发的房产销售管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的房产销售管理系统项目,大学生可以在实践中学习和提升自己的......
  • 基于Python+Vue开发的酒店客房预订管理系统
    项目简介该项目是基于Python+Vue开发的酒店客房预订管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的酒店客房预订管理系统项目,大学生可以在实践中学习和提......
  • 基于Python+Vue开发的口腔牙科预约管理系统
    项目简介该项目是基于Python+Vue开发的口腔牙科预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的口腔牙科诊所预约管理系统项目,大学生可以在实践中学习......
  • 基于Python+Vue开发的健身房管理系统
    项目简介该项目是基于Python+Vue开发的健身房管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的健身房管理系统项目,大学生可以在实践中学习和提升自己的能力,......
  • Python 虚拟环境安装使用(Anaconda 完整实操版)
    1.安装安装anaconda(包含python和pip等,支持创建及管理多个python虚拟环境)注:miniconda可能也可以,但是没用过,优先anaconda1.1linux1.1.1ubuntuMac、Windows及其他Linux系统类似注:一般不使用root用户,使用其他非root用户(方便使用homebrew等)Anaconda3......