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
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
Please Login to comment...