首页 > 编程语言 >单链表的排序(python)

单链表的排序(python)

时间:2022-12-01 16:23:03浏览次数:39  
标签:head 单链 nums python 链表 遍历 数组 排序

思路:

链表最难受的就是不能按照下标访问,只能逐个遍历,那像排序中常规的快速排序、堆排序都不能用了,只能用依次遍历的冒泡排序、选择排序这些。但是这些O(n2)O(n^2)O(n2)复杂度的排序方法太费时间了,我们可以将其转化成数组后再排序。

具体做法:

  • step 1:遍历链表,将节点值加入数组。
  • step 2:使用内置的排序函数对数组进行排序。
  • step 3:依次遍历数组和链表,按照位置将链表中的节点值修改为排序后的数组值。
def sortInList(self , head: ListNode) -> ListNode:         # write code here         p = head         nums = []         #遍历链表,将节点值加入数组         while p:             nums.append(p.val)             p = p.next         p = head         #对数组元素排序         nums.sort()         #遍历数组         for i in range(len(nums)):             #将数组元素依次加入链表             p.val = nums[i]             p = p.next         return head

标签:head,单链,nums,python,链表,遍历,数组,排序
From: https://www.cnblogs.com/ailie/p/16941770.html

相关文章

  • 排序算法图文视频讲解
    排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排......
  • Python实验报告——第13章 Pygame游戏编程
    实验报告【实验目的】 1.掌握Pygame的基础知识。【实验条件】1.PC机或者远程编程环境。 【实验内容】1.完成第十三章  实例01:篮球自动弹跳。  实例01:创......
  • 力扣275(jav&python)-H 指数 II(中等)
    题目:给你一个整数数组citations,其中citations[i]表示研究者的第i篇论文被引用的次数,citations已经按照 升序排列 。计算并返回该研究者的h 指数。h指数的定......
  • 单链表每k个一组反转(python)
    题目:将给出的链表中的节点每k 个一组翻转,返回翻转后的链表如果链表中的节点数不是k的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。具体做法......
  • 使用 Python 设置数据的路径
    https://desktop.arcgis.com/zh-cn/arcmap/latest/analyze/python/setting-paths-to-data.htmhttps://blog.csdn.net/weixin_45598506/article/details/111311350使用Py......
  • python not的用法
    在python中None,False,空字符串"",0,空列表[],空字典{},空元组()都相当于False,即:notNone==notFalse==not''==not0==not[]==not{}==not()......
  • Python学习之路-python基础二-第三篇
    1.内置函数一  详细见python文档,猛击这里 2.文件操作操作文件时,一般需要经历如下步骤:打开文件操作文件一、打开文件文件句柄=file('......
  • Python高级-静态方法和类方法的根本区别-笔记
    1.类属性、实例属性它们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同,实例属性属于对象类属性属于类classProvince(object):#类属性country='......
  • Python高级-property属性-笔记
    1.property属性1.什么是property属性一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法################定义###############classFoo:deffunc(self......
  • Python高级-魔法属性-笔记
    无论人或事物往往都有不按套路出牌的情况,Python的类属性也是如此,存在着一些具有特殊含义的属性,详情如下:1.__doc__表示类的描述信息classFoo:"""描述类信息,这是用于看......