LeetCode102题:二叉树的层序遍历(python3)

news2024/12/23 4:42:23

在这里插入图片描述
代码思路:使用队列先进先出的特性,queue[]不为空进入for循环,tmp存储每层的节点,将结果添加至res[]中。
python中使用collections中的双端队列deque(),其popleft()方法可达到O(1)时间复杂度。

class Solution:
    def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
        if not root:return[]
        res,queue = [],collections.deque()
        queue.append(root)
        while queue:
            tmp = []
            for _ in range(len(queue)): #len(queue)的长度不为null就进入循环
                node = queue.popleft()
                tmp.append(node.val)
                if node.left:queue.append(node.left)
                if node.right:queue.append(node.right)  
            res.append(tmp)
        return res

列表的方法一般只支持尾部,例如pop、append,但是对于一些队列问题,需要在头部操作,则需要使用pop(0)、insert(0,x)等方法,不太方便,Python的collections包中的双端队列deque很好地解决了这个问题,增加了头部方法popleft、appendleft等。

from collections import deque

alist=['a','b','c','d']
dq=deque(alist)
print(dq.pop())
print(dq.popleft())
print(dq)
dq.appendleft('e')
print(dq)
                         
d
a
deque(['b', 'c'])
deque(['e', 'b', 'c'])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1511057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv9改进项目|关于本周更新计划的说明24/3/12

目前售价售价59.9,改进点30个 专栏地址: 专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,主力高效涨点!!! 日期:24/3/12 本周更新计划说明: 1. 更新华为Gold YOLO中的…

为表重命名

oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 为表重命名 DDL 属 于 数 据 对 象 定 义 语 言, 主 要 的 功 能 是 创 建 对 象, 所 以 表 创 建 单 词 是create 但问题是,这些对象被…

如何使用vue实现购物车中数字的增减操作

实现效果如下&#xff08;当点击购买数量的时候&#xff0c;可以增减&#xff09;&#xff1a; 首先&#xff0c;写出界面原型&#xff1a; <div id"container"><table ref"myTable"><thead></thead><tbody><tr><…

SQL数据库-SQL命令-SQL语言

我要成为嵌入式高手之3月12日Linux高编第二十天&#xff01;&#xff01; ———————————————————————————— 数据库软件 关系型数据库&#xff1a; Mysql Oracle SqlServer Sqlite 非关系型数据库&#xff08;相当于在内存中搞了一块空间&#xff…

Python 导入Excel三维坐标数据 生成三维曲面地形图(面) 2、线条平滑曲面但有间隔

环境和包: 环境 python:python-3.12.0-amd64包: matplotlib 3.8.2 pandas 2.1.4 openpyxl 3.1.2 scipy 1.12.0 代码: import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from scipy.interpolate import griddata imp…

大模型时代下的 BI——智能问数

「智能问数」是 Sugar BI 基于文心大语言模型推出的对话式数据问答产品&#xff0c;让用户能够通过自然语言的方式进行对答形式的数据查询&#xff0c;系统自动使用可视化图表的方式呈现数据结果&#xff0c;并支持对数据做summary总结。 智能问数功能邀测中&#xff0c;欢迎CS…

海外媒体发稿:新闻媒体发稿7种方法-华媒舍

新闻报道媒体发稿营销推广是当代企业形象宣传的重要手段之一&#xff0c;合理推广可以提升品牌知名度、吸引住潜在用户。在这篇文章中&#xff0c;我们将要详细介绍七种科学合理的形式&#xff0c;帮助你完全把握新闻报道媒体发稿营销推广。 1.明确目标群体明确目标群体是实现推…

算法之滑动窗口

题目1:209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 解法⼀(暴力求解): 思路&#xff1a; 从前往后, 枚举数组中的任意⼀个元素, 把它当成起始位置, 然后从这个起始位置开始, 然 后寻找⼀段最短的区间, 使得这段区间的和「⼤于等于」⽬标值. 将所有元素作为…

郑州大学2024年3月招新赛题解

1.两重二for循环维护次大值 这里我就直接用map维护了&#xff0c;多了个logn复杂度还是可以的&#xff0c;下面是AC代码&#xff1a; #include<bits/stdc.h> using namespace std; int n,a[1010]; map<int,int> mp; int main(){cin>>n;int sum0;map<int,…

操作系统--LRU算法,手撕

今天研究一下LRU算法&#xff0c;上学期学数据结构的时候就应该学一下这个算法&#xff0c;不过后面操作系统也会讲到LRU算法 题目 LRU缓存leetocde146 LRU&#xff08;Least Recently Used&#xff0c;最近最少使用&#xff09;算法是一种常见的缓存替换算法&#xff0c;通…

索引失效的介绍和避免方法

索引是什么 在关系数据库 中&#xff0c;索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种 存储结构 &#xff0c;它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。 索引的作用相当于图书的目录&#xff0c;可以根据…

​《宏伟世纪》在 TheSandbox 中带来虚拟苏丹体验!

《宏伟世纪》&#xff08;Magnificent Century&#xff09;与 The Sandbox 合作&#xff0c;将戏剧带入数字领域&#xff01;这部土耳其历史小说电视连续剧以苏丹苏莱曼大帝和许蕾姆苏丹的生平为原型&#xff0c;曾在 140 多个国家和地区播出&#xff0c;收视率超过 5 亿&#…

交换机STP工作原理

文章目录 一、确定交换机角色二、确定端口角色1.根端口选举2.指定端口选举3.非指定端口选举 三、确定端口状态常用查询命令实验拓扑实例一拓扑实例二拓扑实例三拓扑实例四拓扑图实例五 BPDU报文中携带的Root Identifier、Root Path Cost、Bridge Identifier、Port Identifier字…

13年老鸟整理,性能测试技术知识体系总结,从零开始打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 从个人的实践经验…

新质生产力浪潮下,RPA如何成为助力先锋?

新质生产力浪潮下&#xff0c;RPA如何成为助力先锋&#xff1f; 在数字化、智能化的今天&#xff0c;“新质生产力”一词越来越频繁地出现在我们的视野中。那么&#xff0c;究竟什么是新质生产力&#xff1f;它与我们又有什么关系&#xff1f;更重要的是&#xff0c;在这一浪潮…

2024年,10大产业趋势:创新驱动下的全面转型与发展

本趋势指南深入探讨塑造企业创新未来的力量&#xff0c;以及为什么企业必须改变创新方式。指南概述了创新未来的愿景&#xff0c;其中人类智慧和AI技术在创新中相结合&#xff0c;相互补充和放大&#xff0c;这将是一个全新范围的端到端创新平台&#xff0c;旨在将各个点连接起…

用chatgpt写论文重复率高吗?如何降低重复率?

ChatGPT写的论文重复率很低 ChatGPT写作是基于已有的语料库和文献进行训练的&#xff0c;因此在写作过程中会不可避免地引用或借鉴已有的研究成果和观点。同时&#xff0c;由于ChatGPT的表述方式和写作风格与人类存在一定的差异&#xff0c;也可能会导致论文与其他文章相似度高…

Python中Matplotlib保存图像时去除边框(坐标轴、白色边框、透明边框)方法

直接说解决方法&#xff1a; plt.savefig(‘image3.png’,bbox_inches‘tight’,pad_inches0) &#xff08;三行搞定&#xff09; import numpy as np import matplotlib.pyplot as pltimg np.random.randn(10,10)figplt.imshow(img) plt.axis(off) plt.savefig(image3.png,b…

面试题02.07.链表相交

方法一&#xff1a;暴力 public ListNode getIntersectionNode(ListNode headA, ListNode headB) {//先获得链表长度ListNode l1 headA;ListNode l2 headB;int m 0, n 0;while(l1 ! null){m;l1 l1.next;}while(l2 ! null){n;l2 l2.next;}ListNode l3 headA;for(int i …

YOLOv5_seg-Openvino和ONNXRuntime推理【CPU】

纯检测系列&#xff1a; YOLOv5-Openvino和ONNXRuntime推理【CPU】 YOLOv6-Openvino和ONNXRuntime推理【CPU】 YOLOv8-Openvino和ONNXRuntime推理【CPU】 YOLOv7-Openvino和ONNXRuntime推理【CPU】 YOLOv9-Openvino和ONNXRuntime推理【CPU】 跟踪系列&#xff1a; YOLOv5/6/7-O…