扫码关注官方订阅号
闭关修行中......
一个节点时q=q->next会报错
达到链表末尾时q=NULL;q=q->next;报错Segmentation fault
while(p != NULL) { p->next=temp; temp=p; p=q; if(q != NULL) { q=q->next; } } return temp;
循环的出口条件不正确,判断p=NULL是退出循环,return p;返回结果为NULL到达末尾节点时p,q,q->next都为空,temp指向最后一个节点,即新的头节点
//迭代实现 struct node * reverse_it(struct node *pHead) { struct node *pNewHead = NULL; struct node *pPrev = NULL; struct node *pCur = pHead; while(pCur != NULL) { struct node *pTmp = pCur->pNext; if(pTmp == NULL) { pNewHead = pCur; } pCur->pNext = pPrev; pPrev = pCur; pCur = pTmp; } return pNewHead; }
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
一个节点时q=q->next会报错
达到链表末尾时
q=NULL;
q=q->next;报错Segmentation fault
循环的出口条件不正确,判断p=NULL是退出循环,return p;返回结果为NULL
到达末尾节点时p,q,q->next都为空,temp指向最后一个节点,即新的头节点