题目链接:https://leetcode.com/problems/merge-k-sorted-lists/
代码
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def mergeKLists(self, lists: List[ListNode]) -> ListNode:
d={}
# 遍历所有的节点,放入dict中
for node_list in lists :
while node_list:
if node_list.val in d :
d[node_list.val]+=1
else :
d[node_list.val]=1
node_list=node_list.next
# 对key进行排序
keys=sorted(d)
# 创建新的链表
head=cur=ListNode(0)
for val in keys :
for i in range(d[val]):
cur.next=ListNode(val)
cur=cur.next
return head.next
思路详解
- 遍历所有的list,放入dict中,其中key为数值,value为个数
- 对key进行排序,创建新的链表
需要读取value值,有几个就要创建几个节点