ДВУСВЯЗНЫЙ СПИСОК PYTHON ПЕРЕВЕРНУТЬ

Двусвязный список - это структура данных, в которой каждый элемент содержит ссылку на предыдущий и следующий элементы списка. В Python можно легко создать такой список используя классы. Для того, чтобы перевернуть двусвязный список в Python, можно использовать следующий алгоритм:

current = headwhile current is not None: temp = current.prev current.prev = current.next current.next = temp current = current.previf temp is not None: head = temp.prev

В этом алгоритме мы начинаем с головы списка и обходим его элементы, меняя местами ссылки на предыдущие и следующие элементы местами. Если голова списка была в изначальном положении, она должна быть изменена на последний элемент, чтобы он стал новой головой.

Пример создания двусвязного списка в Python:

class Node: def __init__(self, data): self.data = data self.prev = None self.next = None class DoublyLinkedList: def __init__(self): self.head = None # добавить элемент в список def append(self, data): new_node = Node(data) if self.head is None: self.head = new_node return current = self.head while current.next is not None: current = current.next current.next = new_node new_node.prev = current # перевернуть список def reverse(self): current = self.head while current is not None: temp = current.prev current.prev = current.next current.next = temp current = current.prev if temp is not None: self.head = temp.prev # вывести список def print_list(self): current = self.head while current is not None: print(current.data) current = current.next# пример использованияdll = DoublyLinkedList()dll.append(1)dll.append(2)dll.append(3)dll.print_list()dll.reverse()dll.print_list()

Вывод программы:

123321

Как видно из вывода, список был успешно перевернут, иначе элементы выводились бы в обратном порядке.

#10. Двусвязный список. Структура и основные операции - Структуры данных

Решаю задачу с собеседования в Яндекс: reverse linked list

Работа со связным списком в Python. Решение 206 задачи Leetcode

Структуры данных в Python #2 Двусвязные списки

Структуры данных в Python #1: Односвязные списки

#11. Делаем двусвязный список на С++ - Структуры данных

Двусвязный список - Динамические структуры данных #2

Linked List на Python (Связный Cписок на Python) 2021

BLGPG-53EA08D037C4-24-09-20-01

Новые материалы: