The following C function takes a singly-linked list of integers as a parameter…
GATE · 2005 · ITGATE · 2008 · CS
The following C function takes a singly-linked list of integers as a parameter and rearranges the elements of the list. The list is represented as pointer to a structure. 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;
}
}- 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
Attempted by 459 students.
Show answer
Correct answer: B
The worked solution is available to enrolled students.
Video solution available to enrolled students.
Explore the full course: Iocl Engineers Officers Grade A Paper 2
Loading lesson…