【算法刷题】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

相关推荐
sali-tec1 分钟前
C# 基于halcon的视觉工作流-章49-网面破损
开发语言·图像处理·算法·计算机视觉·c#
ysa05103012 分钟前
Fenwick 树进行快速统计
算法
im_AMBER23 分钟前
Leetcode 33
算法·leetcode·职场和发展
andyguo33 分钟前
全面解读大型语言模型测评:从认知演进到实操框架
人工智能·算法
测试199844 分钟前
Selenium自动化测试+OCR-获取图片页面小说详解
自动化测试·软件测试·python·selenium·测试工具·ocr·测试用例
闲人编程1 小时前
使用MLflow跟踪和管理你的机器学习实验
开发语言·人工智能·python·机器学习·ml·codecapsule
lzptouch1 小时前
线性回归算法
算法·回归·线性回归
panplan.top1 小时前
Tornado + Motor 微服务架构(Docker + 测试 + Kubernetes)
linux·python·docker·微服务·k8s·tornado
看兵马俑的程序员1 小时前
RAG实现-本地PDF内容加载和切片
开发语言·python·pdf
曹牧2 小时前
C#:数组不能使用Const修饰符
java·数据结构·算法