Heap堆 数据结构
def mergeKLists(self, lists: List[ListNode]) -> ListNode:
a = []
for item in lists:
while item:
heapq.heappush(a, item.val) #把每一个项item读出来加入堆a中
item = item.next
head = ne = ListNode()
while a: #输出成链表 (遍历堆a中的数,加入ListNode(即加到头后面 next:{ListNode...啥的))
t = ListNode(heapq.heappop(a))
ne.next = t
ne = ne.next
return head.next
如果数据里不像lc变态塞[]
空的东西。
直接读
def mergeKLists(self, lists: List[ListNode]) -> ListNode:
a = []
for i in range(len(lists)):
# m = len(lists[i])
head = lists[i]
while head:
a.append(head.val)
head = head.next
a.sort()
if a == []:
return ListNode('') #注:中文站要用None (英文站也可用None)
else:
head1 = ListNode(a[0])
result = head1
for i in range(1, len(a)):
head1.next = ListNode(a[i])
head1 = head1.next
return(result)