LeetCode--148--排序链表(python)
2024-10-07 08:31:59
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。
示例 1:
输入: 4->2->1->3
输出: 1->2->3->4
示例 2:
输入: -1->5->3->4->0
输出: -1->0->3->4->5
插入排序,肯定超时了,时间复杂度最坏是O(n^2)
class Solution:
def sortList(self, head: ListNode) -> ListNode:
if head==None or head.next==None:
return head
dummyY=ListNode(0)
dummyY.next=head
p = head
r = p.next
p.next=None
p=r
while p != None:
pre = dummyY
r = p.next
while pre.next!=None and pre.next.val <p.val:
pre = pre.next
p.next = pre.next
pre.next = p
p = r
return dummyY.next
归并
class Solution:
def sortList(self, head: ListNode) -> ListNode:
if not head or not head.next:return head
slow,fast = head,head.next
while fast and fast.next:
fast,slow=fast.next.next,slow.next
mid,slow.next=slow.next,None
left,right=self.sortList(head),self.sortList(mid) h=res = ListNode(0)
while left and right:
if left.val < right.val :h.next,left=left,left.next
else:h.next,right=right,right.next
h=h.next
h.next=left if left else right
return res.next
最新文章
- Mybatis关联查询和数据库不一致问题分析与解决
- [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类
- 第九周 psp
- linux下IPTABLES配置详解(转)
- constraint使用方法总结
- thinkphp 自定义标签
- Linux - 扩展
- oracle中的初始化参数文件
- 如何将一个Jsp网站打包发布(发布为War文件)
- webservice07#契约优先#webservice实现简单的动态web项目
- JAVA设计模式之:命令模式
- 安装SQL Server DQS 和 MDS
- Tomcat NIO 模型的实现
- Pandas系列(七)-计算工具介绍
- Mac上通过iterm 上传文件到服务器
- sparkStreaming 与fafka直接方式 进行消费者偏移量的保存如redis 里面 避免代码改变与节点重启后的数据丢失与序列化问题
- thinkphp5+qrcode生成二维码
- JS框架图
- scratch资源
- session的三种超时设置
热门文章
- Python学习之==>;接口开发
- 正则表达式——Unicode 匹配规则
- <;nginx.conf>; nginx设置用户权限
- vue分别打包测试环境和正式环境
- Nginx 配置二级虚拟目录访问 Laravel 重写
- [LeetCode] 132. 分割回文串 II
- 搜索专题: HDU1027Ignatius and the Princess II
- vscode配置汇总
- 拼接HTML代码在UIWebVIew中显示
- tomcat 启动日志乱码,idea中运行Tomcat也出现中文乱码:“淇℃伅”