//我把你的的倒序函数改了一下,你试试:
struct lnode *rotate(struct lnode *head_A)
{
struct lnode *p1,*p2,*p3;
p1 = head_A->next;
p3 = (struct lnode *)malloc(LEN);
p3->next = NULL;
while(p1)
{ // 从链表中取一个节点 p2 记录它
p2 = p1;
head_A->next = p1->next;
p1 = p1->next;
// 倒插入p3为头节点的链表
if(p3->next == NULL)
{
p3->next = p2;
}
else
{
p2->next = p3->next;
p3->next = p2;
}
}
head_A->next = p3->next; //用head_A替换p3
free(p3); // 释放p3空间
return head_A;
}