GATE CS 2004 — Question 33

Multiple choice 2 marks Question 33 2004

Question 33

MCQ 2 marks · −0.66 Programming and Data Structures

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?

Answers and explanations are free — they just need an account.

Where this question comes from

Source: GATE 2004 Computer Science and Engineering, Q33 (question number approximate)