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

Related Articles

Data Structures | Linked List | Question 5

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function. 

C




/* Link list node */
struct node
{
    int data;
    struct node* next;
};
 
/* head_ref is a double pointer which points to head (or start) pointer
  of linked list */
static void reverse(struct node** head_ref)
{
    struct node* prev   = NULL;
    struct node* current = *head_ref;
    struct node* next;
    while (current != NULL)
    {
        next  = current->next; 
        current->next = prev;  
        prev = current;
        current = next;
    }
    /*ADD A STATEMENT HERE*/
}


What should be added in place of \”/*ADD A STATEMENT HERE*/\”, so that the function correctly reverses a linked list.

(A)

*head_ref = prev;

(B)

*head_ref = current;

(C)

*head_ref = next;

(D)

*head_ref = NULL;


Answer: (A)

Explanation:

The statement to update the head pointer could be as follows

*head_ref = prev;

This statement sets the value of *head_ref (which is a double pointer) to the value of prev, which is the new head of the reversed 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 : 28 Jun, 2021
Like Article
Save Article
Similar Reads
Related Tutorials