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

Опубликовано: 12 Января, 2023

Для заданного связанного списка напишите функцию, которая обращает все k узлов (где k — входные данные функции).

Примеры:

Inputs:  1->2->3->4->5->6->7->8->NULL and k = 3 
Output:  3->2->1->6->5->4->8->7->NULL. 

Inputs:   1->2->3->4->5->6->7->8->NULL and k = 5
Output:  5->4->3->2->1->8->7->6->NULL.

Мы уже обсуждали его решение в посте ниже
Развернуть связанный список в группах заданного размера | Набор 1
В этом посте мы использовали стек, в котором будут храниться узлы данного связанного списка. Во-первых, поместите k элементов связанного списка в стек. Теперь извлекайте элементы один за другим и следите за ранее извлеченным узлом. Направьте следующий указатель предыдущего узла на верхний элемент стека. Повторяйте этот процесс, пока не будет достигнуто значение NULL.
Этот алгоритм использует O(k) дополнительного пространства.

Реализация:

Временная сложность: O(N) , так как мы используем цикл для прохождения N раз. Где N — количество узлов в связанном списке.
Вспомогательное пространство: O(k) , так как мы используем дополнительное пространство для стека.

Эта статья предоставлена Jatin Goyal . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью с помощью write.geeksforgeeks.org или отправить ее по адресу review-team@geeksforgeeks.org. Посмотрите, как ваша статья появится на главной странице GeeksforGeeks, и помогите другим гикам.