classSolution(object): defargmin(self, lists): idx = -1 min_val = float('inf') for i, node in enumerate(lists): if node and node.val < min_val: idx = i min_val = node.val return idx
defmergeKLists(self, lists): """ :type lists: List[ListNode] :rtype: ListNode """ ifnot lists: returnNone p = lists[0] for l in lists[1:]: p = self.mergeTwoLists(p, l) return p
classSolution(object): defmergeKLists(self, lists): """ :type lists: List[ListNode] :rtype: ListNode """ dummy = ListNode(-1) prev = dummy heap = [] for p in lists: if p: heap.append((p.val, p)) heapq.heapify(heap) while heap: # pop min val, p = heapq.heappop(heap) prev.next = p prev = prev.next if p.next: heapq.heappush(heap, (p.next.val, p.next)) return dummy.next