# Data Structures | Linked List | Question 8

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)  ` `      ``return``; ` `  ``p = list; ` `  ``q = list->next; ` `  ``while``(q)  ` `  ``{ ` `     ``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

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
Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.