Data Structures | Linked List | Question 7

The following C function takes a simply-linked list as input argument. It modifies the list by moving the last element to the front of the list and returns the modified list. Some part of the code is left blank. Choose the correct alternative to replace the blank line.

typedef struct node 
  int value;
  struct node *next;
Node *move_to_front(Node *head) 
  Node *p, *q;
  if ((head == NULL: || (head->next == NULL)) 
    return head;
  q = NULL; p = head;
  while (p-> next !=NULL) 
    q = p;
    p = p->next;
  return head;

(A) q = NULL; p->next = head; head = p;
(B) q->next = NULL; head = p; p->next = head;
(C) head = p; p->next = q; q->next = NULL;
(D) q->next = NULL; p->next = head; head = p;

Answer: (D)

Explanation: See question 1 of

Quiz of this Question

Practice Tags :

Recommended Posts:

3 Average Difficulty : 3/5.0
Based on 1 vote(s)