/*
将两个递增有序的单链表合并成一个递减有序的单链表,并且使时间复杂度为两个链表的长度之和
**/
linknode merge(likn A,link B){
linknode *pa,*pb,*p,*L;
L->next=NULL;
pa=A.head->next;
pb=b.head->next;
while(pa!=NULL&&pb!=NULL){
if(pa->data>pb->data){
p=pa->next;
pa->next=L;
L=pa;
pa=p;
}
else{
p=pb->next;
pb->next=L;
L=pb;
pb=p;
}
}
while(pa!=NULL&&pb==NULL){
p=pa->next;
pa->next=L;
L=pa;
pa=p;
}
while(pa==NULL&&pb!=NULL){
p=pb->next;
pb->next=L;
L=pb;
pb=p;
}
return L;
}
/*
实现单链表的就地倒置
*/
void reverse(link &L){
link *p,*u;
p=NULL;
while(L->next!=NULL){
u=L->next;
L->next=u->next;
u->next=p;
p=u;
}
}