GATE | GATE CS 2008 | Question 62
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, 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
Answer: (B)
Explanation:
Given linked list is 1->2->3->4->5->6->7
If you carefully observe the given function,
It just swaps the adjacent values for every pair till it reaches the end.
The modified linked list is 2->1->4->3->6->5->7
See Question 4 of https://www.geeksforgeeks.org/data-structures-and-algorithms-set-15/
This solution is contributed by Anil Saikrishna Devarasetty
Quiz of this Question
Last Updated :
28 Jun, 2021
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...