Computer Science Engineering (CSE) Exam  >  Computer Science Engineering (CSE) Questions  >  The following function reverse() is supposed ... Start Learning for Free
The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function.
/* 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;
Correct answer is option 'A'. Can you explain this answer?
Most Upvoted Answer
The following function reverse() is supposed to reverse a singly linke...
> The missing line at the end of the function is `current->next = prev;`.
Free Test
Community Answer
The following function reverse() is supposed to reverse a singly linke...
*head_ref = prev;
At the end of while loop, the prev pointer points to the last node of original linked list. We need to change *head_ref so that the head pointer now starts pointing to the last node.
See the following complete running program.
#include<stdio.h>
#include<stdlib.h>
   
/* Link list node */
struct node
{
    int data;
    struct node* next;
};
   
/* Function to reverse the 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;
    }
    *head_ref = prev;
}
   
/* Function to push a node */
void push(struct node** head_ref, int new_data)
{
    /* allocate node */
    struct node* new_node =
            (struct node*) malloc(sizeof(struct node));
              
    /* put in the data  */
    new_node->data  = new_data;
                  
    /* link the old list off the new node */
    new_node->next = (*head_ref);    
          
    /* move the head to point to the new node */
    (*head_ref)    = new_node;
}
   
/* Function to print linked list */
void printList(struct node *head)
{
    struct node *temp = head;
    while(temp != NULL)
    {
        printf("%d  ", temp->data);    
        temp = temp->next;  
    }
}    
   
/* Drier program to test above function*/
int main()
{
    /* Start with the empty list */
    struct node* head = NULL;
     
     push(&head, 20);
     push(&head, 4);
     push(&head, 15); 
     push(&head, 85);      
       
     printList(head);    
     reverse(&head);                      
     printf("\n Reversed Linked list \n");
     printList(head);    
     return 0;
}
Explore Courses for Computer Science Engineering (CSE) exam

Similar Computer Science Engineering (CSE) Doubts

Top Courses for Computer Science Engineering (CSE)

The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function./* 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;Correct answer is option 'A'. Can you explain this answer?
Question Description
The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function./* 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;Correct answer is option 'A'. Can you explain this answer? for Computer Science Engineering (CSE) 2024 is part of Computer Science Engineering (CSE) preparation. The Question and answers have been prepared according to the Computer Science Engineering (CSE) exam syllabus. Information about The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function./* 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;Correct answer is option 'A'. Can you explain this answer? covers all topics & solutions for Computer Science Engineering (CSE) 2024 Exam. Find important definitions, questions, meanings, examples, exercises and tests below for The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function./* 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;Correct answer is option 'A'. Can you explain this answer?.
Solutions for The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function./* 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;Correct answer is option 'A'. Can you explain this answer? in English & in Hindi are available as part of our courses for Computer Science Engineering (CSE). Download more important topics, notes, lectures and mock test series for Computer Science Engineering (CSE) Exam by signing up for free.
Here you can find the meaning of The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function./* 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;Correct answer is option 'A'. Can you explain this answer? defined & explained in the simplest way possible. Besides giving the explanation of The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function./* 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;Correct answer is option 'A'. Can you explain this answer?, a detailed solution for The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function./* 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;Correct answer is option 'A'. Can you explain this answer? has been provided alongside types of The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function./* 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;Correct answer is option 'A'. Can you explain this answer? theory, EduRev gives you an ample number of questions to practice The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function./* 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;Correct answer is option 'A'. Can you explain this answer? tests, examples and also practice Computer Science Engineering (CSE) tests.
Explore Courses for Computer Science Engineering (CSE) exam

Top Courses for Computer Science Engineering (CSE)

Explore Courses
Signup for Free!
Signup to see your scores go up within 7 days! Learn & Practice with 1000+ FREE Notes, Videos & Tests.
10M+ students study on EduRev