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.

**Practice Tags :**