Как объединить два отсортированных связанных списка в Python

Python — это эффективный, читаемый, мощный, высокоуровневый язык с автоматическим управлением памятью. С Python мы можем очень эффективно объединить два связанных списка (как показано ниже).

Помните, что в Python у нас нет встроенного связанного списка.

Алгоритм

Давайте разберемся с алгоритмом объединения двух отсортированных связанных списков с иллюстрация ниже:

1 из 9

Код

В приведенном ниже коде мы реализовали связанный список в Python, а также функцию merge () .

 #  Один узел односвязного списка класса Node: # constructor def __init __ (self, data = None, next = None): self.data = data self.next = next # Класс связанного списка с одним заголовком nodeclass LinkedList: def __init__  (self): self.head = None # метод вставки связанного списка def insert (self, data): newNode = Node (data) if (self.head): current = self.head while (current.next): current  = current.next current.next = newNode else: self.head = newNode # метод печати для связанного списка def printLL (self): current = self.head while (current): print (current.data) current = current.next  # ----------------------- Функция слияния --------------------- # def merge  (List_1, List_2): # Узел для вывода LinkedList head_ptr = temp_ptr =  Node () # head_ptr будет головным узлом выходного списка # temp_ptr будет использоваться для вставки узлов в выходной список # Цикл для объединения двух списков # Цикл завершится, когда оба списка достигнут своего конца, в то время как List_1 или List_2: # List_1 имеет  не достиг своего конца # и List_2 либо достиг своего конца, либо его текущий узел имеет данные # больше или равные данным узла List_1 #, чем вставляет узел List_1 в список вывода, если List_1 и (не List_2 или List_1.data  

Оцените статью
nanomode.ru
Добавить комментарий