Data Structures | Linked List | Question 3

Consider the following function that takes reference to head of a Doubly Linked List as parameter. Assume that a node of doubly linked list has previous pointer as prev and next pointer as next.

void fun(struct node **head_ref)
{
    struct node *temp = NULL;
    struct node *current = *head_ref;
  
    while (current !=  NULL)
    {
        temp = current->prev;
        current->prev = current->next;
        current->next = temp;
        current = current->prev;
    }
  
    if(temp != NULL )
        *head_ref = temp->prev;
}

Assume that reference of head of following doubly linked list is passed to above function

1 2 3 4 5 6.

What should be the modified linked list after the function call?
(A) 2 1 4 3 6 5
(B) 5 4 3 2 1 6.
(C) 6 5 4 3 2 1.
(D) 6 5 4 3 1 2


Answer: (C)

Explanation: The given function reverses the given doubly linked list. See Reverse a Doubly Linked List for details.



My Personal Notes arrow_drop_up