Skip to content
Related Articles
Open in App
Not now

Related Articles

Data Structures | Linked List | Question 8

Improve Article
Save Article
  • Difficulty Level : Hard
  • Last Updated : 28 Jun, 2021
Improve Article
Save Article

The following C function takes a single-linked list of integers as a parameter and rearranges the elements of the list. The function is called with the list containing the integers 1, 2, 3, 4, 5, 6, 7 in the given order. What will be the contents of the list after the function completes execution?

struct node 
  int value;
  struct node *next;
void rearrange(struct node *list)
  struct node *p, * q;
  int temp;
  if ((!list) || !list->next) 
  p = list;
  q = list->next;
     temp = p->value;
     p->value = q->value;
     q->value = temp;
     p = q->next;
     q = p?p->next:0;

(A) 1,2,3,4,5,6,7
(B) 2,1,4,3,6,5,7
(C) 1,3,2,5,4,7,6
(D) 2,3,4,5,6,7,1

Answer: (B)

Explanation: The function rearrange() exchanges data of every node with its next node. It starts exchanging data from the first node itself.

Quiz of this Question

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!