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

力扣热题100之排序链表

题目

给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。
在这里插入图片描述

代码

方法一:

用列表存值,然后再排序,最后遍历列表原地改值

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def sortList(self, head: Optional[ListNode]) -> Optional[ListNode]:if not head:return Nonehead_list=[]dummy=ListNode(0,head)cur=dummy.nextwhile cur:head_list.append(cur.val)cur=cur.nexthead_list.sort()i=0cur=dummy.nextwhile cur:cur.val=head_list[i] i+=1cur=cur.nextreturn dummy.next       

方法二:

首先将原链表分为两段,然后分别通过递归合并对这两段链表进行排序,最后合并两段链表

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def sortList(self, head: Optional[ListNode]) -> Optional[ListNode]:def merge(left,right):dummy=ListNode(0)temp=dummywhile left and right:if left.val<right.val:temp.next=leftleft=left.nextelse:temp.next=rightright=right.nexttemp=temp.nexttemp.next= left if left else rightreturn dummy.nextif not head or not head.next:return headslow=headfast=head.nextwhile fast and fast.next:slow=slow.nextfast=fast.next.nextmid=slow.nextslow.next=Noneleft=self.sortList(head)right=self.sortList(mid)return merge(left,right)
http://www.xdnf.cn/news/8664.html

相关文章:

  • 电脑网络如何改ip地址?ip地址改不了怎么回事
  • 白杨SEO:做AI搜索优化的DeepSeek、豆包、Kimi、百度文心一言、腾讯元宝、通义、智谱、天工等AI生成内容信息采集主要来自哪?占比是多少?
  • Microsoft.ClearScript.V8单例模式封装,方便下次使用。
  • Android12 launcher3修改App图标白边问题
  • Linux命令简介
  • 过滤器和拦截器的区别
  • web常见的攻击方式有哪些?如何防御?
  • 防止误触的手机锁屏实用工具
  • 跨平台兼容Setup PDF 编辑器页面合并拆分OCR 识别支持多语言
  • Jenkins的Pipline中有哪些区块,以及其它知识点整理
  • 【 大模型技术驱动智能网联汽车革命:关键技术解析与未来趋势】
  • 安全基础与协议分析
  • 静态分配动态绑定
  • 数据的获取与读取篇---常见的数据格式JSON
  • 一张纸决定的高度
  • 数据透视表和公式法在Excel中实现去除重复计数的方法
  • 大数据治理:理论、实践与未来展望(二)
  • 稳固基石 - Prometheus 与 Alertmanager 运维考量
  • 探索产品经理的MVP:从概念到实践
  • 信息安全管理与评估2025上海卷
  • 在UniApp中开发微信小程序实现图片、音频和视频下载功能
  • C++单例模式
  • Spring boot和SSM项目对比
  • Sqlserver-数据库的事务日志已满,原因为“LOG_BACKUP”。
  • 转移dp简单数学数论
  • SAP全面转向AI战略,S/4HANA悄然隐身
  • 【笔记】为 Miniconda 安装图形界面的方法
  • 微服务架构实战:Eureka服务注册发现与Ribbon负载均衡详解
  • Day126 | 灵神 | 二叉树 | 层数最深的叶子结点的和
  • 第2章 数据库设计