The following C function takes a list of integers as parameter and rearranges the elements in the list. The function is called with the list containing the $1,2,3,4,5$, 6, 7 integers in the order indicated. What will be the contents of the list after the function has been executed?
```
struct node !
int valueg
struct node + next;
17
Void rearrange (struct node * list) [
stract node * p, * q ?
int temps
it {!1ist || !11st -> next) returnp
P = 11sts q = 11st -> next;
while (q) (
temp = p -> values p -> value = q -> value;
q -> value = temps p = q -> next
q = p? p -> next : 0p
\
l
```
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$