- p原地翻转的意思是p->next是要指向它的前一个结点
- 因此有一个结点pre一直在p的前面
- 由于当前p这个结点翻转后,还需要指向下一个结点继续重复“翻转”操作,因此还需要一个指针记录p后面的结点
指针 | 用途 |
---|---|
p | 当前翻转 |
rear | 指向p后面的那个结点 |
pre | 指向p前面的那个结点 |
void Reverse(linklist *head)
{
linklist *p,*pre*rear;
p=head->next
pre=NULL;
head->next=NULL;
while(p)
{
s=p->next;
p->next=pre;//翻转
pre=p;//都往前移
p=s;//都往前移
}
head->next=pre;
return head;
}