Open In App

Data Structures | Linked List | Question 3

Like Article
Like
Save
Share
Report

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


Last Updated : 11 Jan, 2013
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads