📜  门|门 IT 2005 |第 54 题

📅  最后修改于: 2021-09-27 06:05:50             🧑  作者: 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;
    }
}

(一) 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答案:(乙)
说明:请参阅链接了解更多详情 https://www.geeksforgeeks.org/pairwise-swap-elements-of-a-given-linked-list/
这个问题的测验