【算法刷题】python刷题--合并链表

23\] 合并 K 个升序链表 ```python from typing import List,Optional class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next # @lc code=start # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next import heapq class Solution: def mergeKLists(self, lists: List[ListNode]) -> ListNode: if not lists: return None pq = [] dummy = ListNode(-1) p = dummy for head in lists: if head: heapq.heappush(pq,(head.val,id(head),head)) while pq: node = heapq.heappop(pq)[2] p.next = node if node.next: heapq.heappush(pq,(node.next.val,id(node.next),node.next)) # p指针不断前进 p = p.next return dummy.next ``` 注意点1 对 head是否为None的判断必须有: for head in lists: if head: heapq.heappush(pq,(head.val,id(head),head 否则过不了测试用了\[None

while pq:

p.next = node

或者 p.next = ListNode(node.val) 无区别

因为p.next 会被覆盖成小顶堆的最小值,知道没值了,指向None

相关推荐
gihigo199813 分钟前
基于反步法的路径追踪控制
算法
Jim-2ha013 分钟前
【JavaScript】常见排序算法实现
javascript·算法·排序算法
王老师青少年编程19 分钟前
2025年12月GESP(C++二级): 黄金格
c++·算法·gesp·csp·信奥赛·二级·黄金格
ray96322 分钟前
Python——函数参数传递方式
开发语言·python
codists26 分钟前
2025年12月文章一览
python
梅羽落28 分钟前
python武器化开发_01
开发语言·python·php
Herbert_hwt29 分钟前
C语言位操作符详解:从入门到实战应用
c语言·算法
逍遥德43 分钟前
JPA 操作对象图 (Object Graph) 详解
开发语言·python
deephub1 小时前
DeepSeek 开年王炸:mHC 架构用流形约束重构 ResNet 残差连接
人工智能·python·深度学习·神经网络·残差链接
上班职业摸鱼人1 小时前
MMDetection 框架完整教程(从入门到实战,代码可复现)
python