102 二叉树层序遍历

102 二叉树层序遍历层序遍历,每次层的输出是是一个一维数组,整个二叉树的输出结果是二维数组BFS遍历,依托于队列结构,每次在根节点出栈的时候,将其值加在结果列表中,然后将他的左右孩子节点入队列。层序遍历相对于BFS,需要知道每一层有多少个节点。因此,我们需要稍微修改一下代码,在每一层遍历开始前,先记录队列中的结点数量nn(也就是这一层的结点数量),然后一口气处理完这一层的n个结点。classSolution:deflevelOrder(self,root:TreeNode):.

大家好,又见面了,我是你们的朋友全栈君。

在这里插入图片描述

层序遍历,每次层的输出是是一个一维数组,整个二叉树的输出结果是二维数组
在这里插入图片描述
BFS遍历,依托于队列结构,每次在根节点出栈的时候,将其值加在结果列表中,然后将他的左右孩子节点入队列。
层序遍历相对于BFS,需要知道每一层有多少个节点。

因此,我们需要稍微修改一下代码,在每一层遍历开始前,先记录队列中的结点数量 nn(也就是这一层的结点数量),然后一口气处理完这一层的 n 个结点。参考

class Solution:
    def levelOrder(self, root: TreeNode):
        r = []
        if not root:return r
        quee = [root]
        while quee:
            temp = []
            k = len(quee)# 当前层右多少个节点
            for i in range(k):
                root = quee.pop(0)
                temp.append(root.val)
                if root.left:quee.append(root.left)
                if root.right:quee.append(root.right)

            r.append(temp)
        return r
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143428.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tcp为什么是三次握手不是两次握手_tcp四次挥手

    tcp为什么是三次握手不是两次握手_tcp四次挥手一、为什么握手是三次,而不是两次或者四次?答:两次不安全,四次没必要。tcp通信需要确保双方都具有数据收发的能力,因此双方都要发送SYN确保对方具有通信的能力二、为什么挥手是四次而不是三次?答:发送FIN包只能表示对方不再发送数据了,不代表对方不再接收数据,因此被动关闭方进行ACK回复之后有可能还会继续发送数据,等到不再发送数据了才会发送下一个FIN包,因此FIN包和ACK包是分开的…

    2022年10月3日
    5
  • USB协议简介「建议收藏」

    USB协议简介「建议收藏」1.USB协议简介https://blog.csdn.net/songze_lee/article/details/776580942017年08月28日23:20:16songze_lee阅读数:22978版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/songze_lee/article/details/77658094…

    2022年6月25日
    28
  • jpa实现增删改查_hibernate入门案例

    jpa实现增删改查_hibernate入门案例JPA(JavaPersistenceAPI)Java持久化API。是一套Java官方制定的ORM方案。JPA是一种规范,一种标准,具体的操作交给第三方框架去实现,比如说Hibernate,OpenJPA等。本文介绍了ORM思想,JPA规范与实现,如何去搭建JPA的基础环境,JPA的操作步骤以及使用Java代码用JPA做基本数据的增删改查。

    2022年10月20日
    6
  • Linux搭建eureka集群,基于dns搭建eureka集群[通俗易懂]

    Linux搭建eureka集群,基于dns搭建eureka集群[通俗易懂]eureka集群方案:1.通常我们部署的eureka节点多于两个,根据实际需求,只需要将相邻节点进行相互注册(eureka节点形成环状),就达到了高可用性集群,任何一个eureka节点挂掉不会受到影响。2.可能会有初学者和我一样,一开始的时候没有完全理解eureka集群的原理,直接把每个eureka节点的url写进配置文件,期望所有的eureka节点进行相互注册。实际上,节点间进行信息同步的时候,…

    2022年5月3日
    119
  • smb服务检测(smb应用)

     开源包,http://jcifs.samba.org/.复制一篇文章.用JAVA访问共享文件系统前言在Microsoft网络系统中,SMB(ServerMessageBlock,服务信息块)协议是WindowsforWorkgroup(WfWg)、Windows95、WindowsNT和LanManager用来实现共享局域网上

    2022年4月13日
    72
  • 阿里云wordpress配置免费ssl证书

    阿里云wordpress配置免费ssl证书本文最后更新于352天前,其中的信息可能已经有所发展或是发生改变。1、登录阿里云,选择产品中的ssl证书如果域名是阿里的他会自动创建dns解析,如果是其他厂商需要按照图片配置,等待几分钟进行验证点击审核,等待签发签发后根据需求下载所需证书我的wordpress是直接买的阿里轻量应用服务器,打开轻量应用服务器的控制台配置域名选择刚申请好的ssl证书在wordpre…

    2022年9月1日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号