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

python-leetcode-二叉树的层序遍历

102. 二叉树的层序遍历 - 力扣(LeetCode)

# 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
from collections import deque
class Solution:
    def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
        if not root:
            return []
        
        result = []
        queue = deque([root])
        
        while queue:
            level_size = len(queue)
            level_nodes = []
            
            for _ in range(level_size):
                node = queue.popleft()
                level_nodes.append(node.val)
                
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
            
            result.append(level_nodes)
        
        return result


http://www.kler.cn/a/531831.html

相关文章:

  • 巧妙利用数据结构优化部门查询
  • L30.【LeetCode笔记】设计链表
  • C++哈希表深度解析:从原理到实现,全面掌握高效键值对存储
  • woocommerce独立站与wordpress独立站的最大区别是什么
  • Baklib如何在知识管理领域成为领军者与六款产品的综合评析
  • 【C++语言】卡码网语言基础课系列----5. A+B问题VIII
  • 【论文公式】MathType打大写手写字母
  • ANSYS Workbench打开cdb文件
  • Vue-el挂载点
  • 安装及使用Tomcat
  • 软件测试 - 概念篇
  • Python MVC框架和其他Web框架有什么区别?
  • (电脑版)植物大战僵尸幼儿园版本,开启你的冒险之旅!
  • 加载数据,并切分
  • 计算机网络笔记再战——理解几个经典的协议1
  • Leetcode:680
  • 【流媒体】搭建流媒体服务器
  • FFM 因子分解机原理与特征域概念解析
  • 追逐低空经济,无人机研学技术详解
  • 【双指针题目】
  • Vue3学习笔记-Vue开发前准备-1
  • Rust场景示例:为什么要使用切片类型
  • Deep Sleep 96小时:一场没有硝烟的科技保卫战
  • 即梦(Dreamina)技术浅析(三):数据库与存储
  • 手写单例模式
  • Java循环操作哪个快