GATEverse Practice, past papers & mock tests
GATE 2008
Programming & Data StructuresLinked ListmediumMCQ2 marks
The following C function takes a singly-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?
c
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;
    }
}
Save your progress

Related Programming & Data Structures PYQs