编写算法将带头结点的单链表就地逆置,时间复杂度为O(1)。
首先容易想到就是使用头插法就是最基本的链表插入,并且刚好是读入顺序的相反,就是逆置的过程
主要核心代码:
L->next=null
s->data=x;
s->next=L->next;
L->next=s;
LinkList reverse(LinkList L){
Lnode *p,*r//p为工作指针,r为p的后继,目的是为了防止断链
p=L->next;
L->next=NULL;
while(P!=NULL){
r=p->next//r暂放p的后继
p->next=L->next;
L->next=p;
p=r;
}
return L;
}
此题就不给出运行结果了,如果还需要知道如何初始化链表的操作,可在我 的前面讲的链表操作有初始化已经建立的操作,放在这里即可,主要掌握核心的算法思想
共有 0 条评论