我正在尝试编写一个函数,它可以颠倒循环链表的顺序(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;
}
}发布于 2013-04-26 17:03:49
next = start->next;
start->next = prev;
start->prev = next;//This line is missing
prev = start;
start = next;它可能会错误地访问(或更新)变量,因此逻辑上看起来没有问题。
https://stackoverflow.com/questions/16230639
复制相似问题