这样写能逆转链表吗?
zzxap 2011-06-13 09:59:10 #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
我就这样挂了。
求真相