这样写能逆转链表吗?

zzxap zzxap 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include <iostream,h>
#include <string.h>

struct Node
{
int num ;
Node *next ;
};


Node *ReverseList(Node *head) //链表逆序(循环方法)
{
Node *p,*q,*r;
p=head; //一开始p指向第一个节点
q=p->next; //q指向第二个节点
while (q!=NULL) //如果没到链尾
{ //以第一次循环为例
r=q->next; //r暂时存储第三个节点
q->next=p; //没执行此句前,q->next指向第三个节点
//执行之后,q->next指向第一个节点p
p=q; //之后p指向第二个节点
q=r; //q指向第三个节点
//即...p=>q=>r...变为 ...p<=q<=r...
}
head->next=NULL; //最后原来的链头变为链尾,把它指向NULL。
head=p; //原来的链尾变成链头
return head;
}
c++转型中,阵痛。。。
某面试官说 head->next=NULL; 是把第二个节点变为空而不是最后一个指向null
我就这样挂了。
求真相
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
zzxap
非技术区 15,445 成员 58,111 内容