当前位置:网站首页>Leetcode 23. Merge K ascending linked lists
Leetcode 23. Merge K ascending linked lists
2022-07-04 07:43:00 【von Libniz】
Topic link :https://leetcode.cn/problems/merge-k-sorted-lists/
Title Description
Here's an array of linked lists , Each list has been listed in ascending order . Please merge all the linked lists into one ascending list , Return the merged linked list .
Example 1:
Input :lists = [[1,4,5],[1,3,4],[2,6]]
Output :[1,1,2,3,4,4,5,6]
explain : The linked list array is as follows :
[
1->4->5,
1->3->4,
2->6
]
Combine them into an ordered list to get .
1->1->2->3->4->4->5->6
Example 2:
Input :lists = []
Output :[]
Example 3:
Input :lists = [[]]
Output :[]
This question is obviously an array k Expansion of road merging , And arrays k There are three solutions to path merging ( hypothesis k The number of all elements of the path array is n):
(1)k Copy the path array to the same array , And then sort them uniformly
(2)k Path array k Subordination
(3) Use the minimum heap , Successively k Minimum value found in arrays , repeat n Time
And this problem changes the array into a linked list , Then it is more appropriate to use the third method .
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:
if not lists:
return None
k = len(lists)
dummy = ListNode(val=-1)
tail = dummy
heap = []
# put each list head to min heap
for i, node in enumerate(lists):
if node is not None:
heap.append((node.val, i, node)) # When val The same pass link_index:i Compare
heapq.heapify(heap)
# find min node n times
while len(heap) > 0:
_, idx, cur_node = heapq.heappop(heap)
tail.next = cur_node
tail = cur_node
if cur_node.next is not None:
heapq.heappush(heap, (cur_node.next.val, idx, cur_node.next))
return dummy.next
边栏推荐
- Handwritten easy version flexible JS and source code analysis
- When JDBC connects to es query, is there a God who meets the following situation?
- ZABBIX monitoring system deployment
- Docker install MySQL
- Book list | as the technical support Party of the Winter Olympics, Alibaba cloud's technology is written in these books!
- What determines vacuum permittivity and vacuum permeability? Why do these two physical quantities exist?
- zabbix监控系统部署
- Easy to understand: understand the time series database incluxdb
- [kubernetes series] kubesphere is installed on kubernetes
- Detailed introduction to the big changes of Xcode 14
猜你喜欢

节点基础~节点操作

PCIe knowledge points -010: where to get PCIe hot plug data

Introduction to neural network (Part 2)

With excellent strength, wangchain technology, together with IBM and Huawei, has entered the annual contribution list of "super ledger"!

Practice (9-12 Lectures)

This article is enough for learning advanced mysql

Take you to master the formatter of visual studio code

Routing decorator of tornado project

ZABBIX monitoring system custom monitoring content

大学阶段总结
随机推荐
Thesis learning -- time series similarity query method based on extreme point characteristics
Activiti常见操作数据表关系
Email alarm configuration of ZABBIX monitoring system
Blog stop statement
21 examples of strategic goals to promote the rapid development of your company
[gurobi] establishment of simple model
Directory of tornado
Two years ago, the United States was reluctant to sell chips, but now there are mountains of chips begging China for help
Is l1-029 too fat (5 points)
PCIe knowledge points -010: where to get PCIe hot plug data
2022-021rts: from the second half of the year
Write a thread pool by hand, and take you to learn the implementation principle of ThreadPoolExecutor thread pool
Système de surveillance zabbix contenu de surveillance personnalisé
Rapidjson reading and writing JSON files
Types of references in BibTex
Tri des fonctions de traitement de texte dans MySQL, recherche rapide préférée
Introduction to neural network (Part 2)
手写简易版flexible.js以及源码分析
zabbix 5.0监控客户端
Zephyr 学习笔记2,Scheduling