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

相关推荐
恣艺1 小时前
LeetCode 68:文本左右对齐
算法·leetcode·c#
Alfred king1 小时前
Leetcode 四数之和
算法·leetcode·职场和发展·数组·排序·双指针
OKkankan2 小时前
string类的模拟实现
开发语言·数据结构·c++·算法
W.KN3 小时前
PyTorch 数据类型和使用
人工智能·pytorch·python
虾饺爱下棋3 小时前
FCN语义分割算法原理与实战
人工智能·python·神经网络·算法
千册4 小时前
python+pyside6+sqlite 数据库测试
数据库·python·sqlite
Eloudy6 小时前
简明量子态密度矩阵理论知识点总结
算法·量子力学
点云SLAM6 小时前
Eigen 中矩阵的拼接(Concatenation)与 分块(Block Access)操作使用详解和示例演示
人工智能·线性代数·算法·矩阵·eigen数学工具库·矩阵分块操作·矩阵拼接操作
悠哉悠哉愿意6 小时前
【电赛学习笔记】MaixCAM 的OCR图片文字识别
笔记·python·嵌入式硬件·学习·视觉检测·ocr
nbsaas-boot7 小时前
SQL Server 窗口函数全指南(函数用法与场景)
开发语言·数据库·python·sql·sql server