Consider the following C function:
1. The single-linked list of integers is taken as a parameter and the function rearranges the elements of the list
2. The function is called with the list containing the integers in the order: 1, 2, 3, 4, 5, 6, 7
3. What are the contents of the list after the function 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;
}
}