Question 33
The following C function takes a singly linked list of integers as a parameter and rearranges the elements of the list. The list is created with the integers 1, 2, 3, 4, 5, 6, 7 in that order, and rearrange is called with a pointer to the first node.
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;
}
}What will be the contents of the list after the function completes execution?
Sign in to see the answer
Answers and explanations are free — they just need an account.