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.
C
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:
This function fun takes a double pointer to the head of a doubly linked list as its argument and reverses the order of the nodes in the list.
For more reference:
https://www.geeksforgeeks.org/reverse-a-doubly-linked-list/
Hence Option(C) is correct answer.
Quiz of this Question
Please comment below if you find anything wrong in the above post