Skip to content
Related Articles
Open in App
Not now

Related Articles

Data Structures | Linked List | Question 3

Improve Article
Save Article
Like Article
  • Difficulty Level : Easy
  • Last Updated : 11 Jan, 2013
Improve Article
Save Article
Like Article

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.


Quiz of this Question
Please comment below if you find anything wrong in the above post

My Personal Notes arrow_drop_up
Like Article
Save Article
Related Articles

Start Your Coding Journey Now!