-
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; } }
-
- 1, 2, 3, 4, 5, 6, 7
- 2, 1, 4, 3, 6, 5, 7
- 1, 3, 2, 5, 4, 7, 6
- 2, 3, 4, 5, 6, 7, 1
Correct Option: B
The function rearrange() exchanges data of every node with its next node. It starts exchanging data from the first node itself.