数据结构单链表的原地逆置
步骤:
1.令i=head->next,将链表从表头后断开
2.令r=i(因为要转置的第一个点就是头节点后的结点,所以可以直接让r=i) r 表示临时结点,就是当前结点。
3.将当前指针(结点)从链表中断开,用i来记录断开结点后的指针位置i=r->next
4.将r进行头插,用s表示头结点,令s=null
r->next=s s=r(这两步就是头插法)
//
int ListReverse(LinkList *L) //本地逆置 带头结点
{
LNode *r=NULL,*i=(*L)->next,*s=NULL;
while (i != NULL)
{
r=i;
i=r->next;
r->next=s;
s=r;
}
printf("逆置完成");
(*L)->next=s;
return 1;
}