leetcode hot二叉树的层序遍历

news/2024/12/27 1:56:07/

102. 二叉树的层序遍历

已解答

中等

相关标签

相关企业

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)

# Definition for a binary tree node.

# class TreeNode(object):

#     def __init__(self, val=0, left=None, right=None):

#         self.val = val

#         self.left = left

#         self.right = right

class Solution(object):

    def levelOrder(self, root):

        """

        :type root: Optional[TreeNode]

        :rtype: List[List[int]]

        """

        # 广度优先搜索

        if root ==None:

            return []

        queue = []

        final=[]

        queue.append(root)

        while queue!=[]:

            left = len(queue)

            # final.append(queue[0])

            queue_next=[]

            for i in range(left):

                if queue[i].left:

                    queue_next.append(queue[i].left)

                if queue[i].right:

                    queue_next.append(queue[i].right)

           

            final.append([x.val for x in queue])

           

            queue = queue_next

            queue_next=[]

        return final


 

           

       

直接使用广度优先搜索去做,但是需要注意的是,我们需要额外去维护一个每一个层的lsit


http://www.ppmy.cn/news/1558404.html

相关文章

HIPT论文阅读

题目《Scaling Vision Transformers to Gigapixel Images via Hierarchical Self-Supervised Learning》 论文地址:[2206.02647] Scaling Vision Transformers to Gigapixel Images via Hierarchical Self-Supervised Learning 项目地址:mahmoodlab/HI…

机器学习基础 衡量模型性能指标

目录 1 前言 ​编辑1.1 错误率(Error rate)&精度(Accuracy)&误差(Error): 1.2 过拟合(overfitting): 训练误差小,测试误差大 1.3 欠拟合(underfitting):训练误差大,测试误差大 1.4 MSE: 1.5 RMSE: 1.6 MAE: 1.7 R-S…

钉钉自定义机器人发送群消息(加签方式、http发送)

在钉钉群里创建自定义机器人(群设置-机器人-添加机器人),选择自定义机器人 安全设置有三种,本文章使用加签(secret)方式 ,其他方式可参考官方文档:获取自定义机器人 Webhook 地址 - 钉钉开放平台 添加成功后…

upload-labs关卡记录3

同理,我们先上传一个一句话木马进行尝试,发现页面会刷新,于是看是白名单还是黑名单 看到提示:不允许上传.asp,.aspx,.php,.jsp后缀文件!说明这是黑名单的类型。这里我们发现在限制里面,并没有说不能上传.ht…

工厂常用软件系统大全中英文全称对照表及功能介绍应用场景ERP MES WMS SCADA IOT SAP等软件系统介绍

1. ERP(Enterprise Resource Planning)企业资源计划: ○ 功能:整合企业的各项资源和业务流程,涵盖从采购、生产到销售的各个环节。包括财务管理、生产计划、采购管理、库存管理、销售管理、人力资源管理等。 ○ 应用场…

创建仓颉编程语言的第一个项目

创建仓颉编程语言的第一个项目 安装仓颉编程语言编译器第一个仓颉项目 安装仓颉编程语言编译器 安装仓颉编程语言编译器,是一个需要非常强的动手能力的过程——有大量的命令行操作。这不是仓颉编程语言独有的特点。现在流行的编程语言,比如 kotlin、jav…

江苏计算机专转本 技能Mysql知识点总结(一)

一、概述 1.使用命令行窗口链接MySQL数据库 mysql -u用户名 -p 密码 2.数据表中的一行称为 一条记录 3.SQL Server、Oracle、Mysql、DB2、SyBase,PostgreSQL全是关系数据库。 MongoDB、Cassandra、Neo4j全是非关系数据库。 4.E-R图 矩形:表示实体。菱…

【区块链】深入理解椭圆曲线密码学(ECC)

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 深入理解椭圆曲线密码学(ECC)1. 概述2. 椭圆曲线的数学基础2.1 基本定义2.2 有限…