题目
两个递增有序单链表,设计算法成一个非递减有序的链表
算法思路
①两个链表A,B,分别有两个指针p,q,然后两个对应比较
②小的放下去,指针后移,再比较
③以此类推
④最后比较结束,形成一整个新的C链表
void function(Lnode *A,LNode *B ,LNode *&C){
LNode *p = A->next;
LNode *q = B->next;
LNode *r;//创建新指针
C=A; //C的头结点设置为A的头结点
C-> next = NULL; //C与后面的都断开
r=C;
while(p!=NULL && q!=NULL){
if(p->data <= q->data){
r->next = p; //p小,小的放到r后面
p = p->next; //p往后移动
r = r->next; //插入一个r往后移动一个
}
else{
r->next = q; //q小,小的放到r后面
q = q->next; //q往后移动
r = r->next; //插入一个r往后移动一个
}
}
r->next =NULL;
if(p !=NULL) //p不是空,就让r->next直接连上P剩下的就ok
r->next = p;
if(q !=NULL)//q不是空,就让r->next直接连上q剩下的就ok
r->next = q;
}