Interview Questions
Reverse double linked list
Reverse order of nodes in double linked list.
View Solution
struct elem
{
int value;
struct elem *next;
struct elem *prev;
};
struct elem *reverseDoubleLinkedList(struct elem *head)
{
// a -> b -> c ==> a <- b <- c
struct elem *newHead = nullptr;
struct elem *current_elem = head;
while (current_elem != nullptr)
{
newHead = current_elem;
struct elem *next = current_elem->next;
current_elem->next = current_elem->prev;
current_elem->prev = next;
current_elem = next;
}
return newHead;
}