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