Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Data Structures | Linked List | Question 3

Improve Article
Save Article
Like Article
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
Last Updated : 11 Jan, 2013
Like Article
Save Article
Similar Reads
Related Tutorials