首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的代码不能反转循环链表?

为什么我的代码不能反转循环链表?
EN

Stack Overflow用户
提问于 2013-04-26 15:08:34
回答 1查看 78关注 0票数 0

我正在尝试编写一个函数,它可以颠倒循环链表的顺序(1个标点,双链接)。下面是我的代码。原来的列表是15,14,11,12。我本以为新的列表是12,11,14和15。但我一直得到15,14,11和12。有人能看看我的代码并给我一些提示吗?谢谢!

代码语言:javascript
运行
复制
 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;
     }     

}
EN

回答 1

Stack Overflow用户

发布于 2013-04-26 17:03:49

代码语言:javascript
运行
复制
next = start->next;
start->next = prev;
start->prev = next;//This line is missing
prev = start;
start = next;

它可能会错误地访问(或更新)变量,因此逻辑上看起来没有问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16230639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档