循环单链表的就地逆置操作
循环单链表的就地逆置,使用rear(尾指针)指针操作
[解决办法]
void ListInverse_L(LinkList &L){
//单链表的就地逆置
LNode *p,*q;
p=L->next;
while(p->next!=NULL)
{
q=p->next;
p->next=q->next;
q->next=L->next;
L->next=q;
}
}
[解决办法]
必须用尾指针?如果可以不用,试试上边那个吧
[解决办法]
struct link{link *next;};Order(link *L,link *rear){ link *p; for(p=L,rear->next=NULL;rear->next!=L;rear=rear->next){ while(p->next != rear) p = p->next; rear->next = p;}}link *A,*B;A=...B=A;while(B->next!=A)B=B->next;Order(A,B);