TGViewer
Python | LeetCode Python | LeetCode @easy_python_task · 9.01K subscribers
Post #1715 1.01K
Задача: 23. Merge k Sorted Lists
Сложность: medium 

Вам дан массив из k списков связанных списков, каждый связанный список отсортирован в порядке возрастания. Объедините все связанные списки в один отсортированный связанный список и верните его. 

Пример:
Input: lists = [[1,4,5],[1,3,4],[2,6]]  
Output: [1,1,2,3,4,4,5,6] 


👨‍💻 Алгоритм: 

1️⃣Создаем новый связный список, который будет хранить объединенные узлы.    

2️⃣В каждом проходе находим узел с наименьшим значением из всех первых узлов в списках и добавляем его в новый список. 

3️⃣Повторяем процесс, пока все списки не будут объединены. 

😎 Решение:
from typing import List, Optional  

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]: 
        n = len(lists) 

        newList = ListNode() 
        new = newList 

        while n: 
            # Find list with smallest value 
            smallestNode = ListNode(float('inf')) 
            smallestIndex = -1 
            for i in range(n): 
                listNode = lists[i] 
                if listNode and listNode.val < smallestNode.val: 
                    smallestNode = listNode 
                    smallestIndex = i 

            if smallestIndex == -1: 
                break 

            new.next = ListNode(smallestNode.val) 
            new = new.next 

            if smallestNode.next: 
                lists[smallestIndex] = smallestNode.next 
            else: 
                lists.pop(smallestIndex) 
                n -= 1 

        return newList.next


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 2
More from @easy_python_task
  1. Oct 17, 2026Задача: 1539. Kth Missing Positive Number Сложность: easy Дан массив arr из положительных…
  2. Oct 16, 2026Задача: 1236. Web Crawler Сложность: medium Учитывая url startUrl и интерфейс HtmlParser,…
  3. Oct 15, 2026Задача: 1043. Partition Array for Maximum Sum Сложность: medium Если задан целочисленный м…
  4. Oct 15, 2026Задача: 1474. Delete N Nodes After M Nodes of a Linked List Сложность: easy Вам дано начал…
  5. Oct 14, 2026Задача: 977. Squares of a Sorted Array Сложность: easy Дан целочисленный массив nums, отсо…
  6. Oct 13, 2026Задача: 462. Minimum Moves to Equal Array Elements II Сложность: medium Дан массив целых ч…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →