📜  门| Gate IT 2005 |第54章

📅  最后修改于: 2021-06-28 20:50:45             🧑  作者: Mango

以下C函数将整数的单链接列表作为参数,并重新排列该列表的元素。该列表表示为指向结构的指针。使用包含给定顺序的整数1、2、3、4、5、6、7的列表调用该函数。函数完成执行后,列表的内容是什么?

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答案: (B)
说明:请参阅链接以获取更多详细信息https://www.geeksforgeeks.org/pairwise-swap-elements-of-a-given-linked-list/
这个问题的测验