0

我正在尝试编写一个函数来反转循环链接列表(1 个标记,双链接)的顺序。下面是我的代码。原始列表是 15、14、11、12。我希望新列表是 12、11、14 和 15。但我不断得到 15、14、11 和 12。有人可以看看我的代码并给出我一些提示?谢谢!

 void reverseCirListDeque(struct cirListDeque *q)
{

    assert(q != 0);
    assert(!isEmptyCirListDeque(q));


    struct DLink *start = q->Sentinel->next;
    struct DLink *next;
    struct DLink *prev = NULL;

    while (start != NULL)
    {
        //Swap the next and previous link
        next = start->next;
        start->next = prev;
        prev = start;
        start = next;
     }     

}
4

1 回答 1

1
next = start->next;
start->next = prev;
start->prev = next;//This line is missing
prev = start;
start = next;

它会错误地访问(或更新)变量,逻辑似乎没有问题。

于 2013-04-26T09:03:48.897 回答