要求:1、时间复杂度不超过O(n+k) 2、不另行开辟空间
已知K是大于1小于n的单精度正整数。
设L是某表头结点的单链表头指针,编写一个算法,将单链表的倒数第K个元素之后的全部数据元素依次逆置。
Typedef struct LNode{
elemtype data;
struct LNode *next;
}LNode,*Linklist
void Convert(Linklist &L,int k)
{
Linklist p,q,s;
p=L->next; q=L->next; int count =0;
while(p!=null)
{
if(count<k) count++;
else q=q->next; p=p->next;
}
p=q->next->next;
q->next->nrxt=null;
while(p)
{
s=p->next; p->next=q->next;
q->next=p; p=s;
}
}