Обратный двусвязный список без замены узлов

Опубликовано: 27 Февраля, 2023

Напишите программу, которая переворачивает заданный двусвязный список.

См., например, диаграммы ниже.

          (a) Original Doubly Linked List  

          (b) Reversed Doubly Linked List  

Подход: в предыдущем посте двусвязный список реверсируется путем замены указателей prev и next для всех узлов, изменения prev заголовка (или начала), а затем изменения указателя заголовка в конце. В этом посте мы создаем функцию push, которая добавляет данный узел в начало заданного списка. Мы проходим по исходному списку и один за другим передаем текущий указатель узла в функцию push. Этот процесс перевернет список. Наконец, верните новую голову этого перевернутого списка.

Выход:

Original list: 10 8 4 2
Reversed list: 2 4 8 10

Временная сложность: O(n).

РЕКОМЕНДУЕМЫЕ СТАТЬИ