思路
设立指针ra,rb分别指向A和B,当两个指针都不为空时,用头插法将两指针中较小者放入C中;当两个指针中有一个为空时,头插法放入另一个指针的元素。直到把A和B的元素都放完。
代码
void merge(LinkList A,Linklist B,LinkList &C){
C=(LinkList)malloc(sizeof(LNode));
C->next=NULL;
LNode *ra=A->next,*rb=B->next,*r;
while(ra!=NULL || rb!=NULL){
if(rb==NULL || ra->data < rb->data){
r=ra->next;
ra->next=C->next;
C->next=ra; ra=r;
}else if(ra==NULL || ra->data > rb->data){
r=rb->next;
rb->next=C->next;
C->next=rb; rb=r;
}
}
}