| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 704 人关注过本帖
标题:链表逆序为什么不对呢?
只看楼主 加入收藏
纯帅de肥猪
Rank: 2
等 级:论坛游民
威 望:3
帖 子:9
专家分:10
注 册:2016-3-4
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
链表逆序为什么不对呢?
//链表逆序 ,写了一个链表逆序的函数,但是却无法输出正确的结果,不知道为题出现在哪里
testType *reverse(testType *node)
{
    testType *pPrevious=NULL;//前一个节点
    testType *pCurrent=node;//当前节点   
    testType *pNext=NULL;    //后一个节点

    pPrevious=pCurrent;
    pCurrent=pCurrent->next;
    pNext=pCurrent->next;
    pPrevious->next=NULL;
   
    while(pCurrent != NULL)
    {               
        pCurrent->next=pPrevious;//将当前指针指向前面的节点
        pPrevious=pCurrent;
        pCurrent=pCurrent->next;
        pNext=pCurrent->next;               
    }
    return pCurrent;   
}
2017-03-07 17:53
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:10 
粗略看了一下~如果node->next是NULL的话……pNext会出问题~

链表就地逆序是有参考资料的~可以对着看看~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-03-07 18:06
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:10 
逻辑顺序乱了,如下修改试试:
testType *reverse(testType *node)
{
    testType *pPrevious=NULL;//前一个节点
    testType *pCurrent=node;//当前节点   
    testType *pNext=NULL;    //后一个节点

    while(pCurrent != NULL)
    {               
        pNext=pCurrent->next;     //首先保留下个节点           
        pCurrent->next=pPrevious; //将当前指针指向前面的节点
        pPrevious=pCurrent;
        pCurrent=pNext;           //当前指针指向下一个节点
    }
    return pPrevious;             //while循环结束后,当前指针已经是NULL了,返回的头指针应该是pPrevious
}
2017-03-07 19:13
快速回复:链表逆序为什么不对呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029606 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved