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 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 fun(struct node *list)
{
struct node *p, *q;
if((!list) || (!list->next))
return;
p = list;
q = list->next;
while(q)
{
p->value = q->value;
q = q->next;
p = p->next;
}
}
1
2 3 4 5 6 6
2
1 2 3 4 5 6
3
6 5 4 3 2 1
4
1 2 3 5 6 4