数据结构算法-链表(1):两个递增有序单链表,设计算法成一个非递减有序的链表

题目

两个递增有序单链表,设计算法成一个非递减有序的链表

算法思路

①两个链表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;
}
		
	
			
	

猜你喜欢

转载自blog.csdn.net/becomeyee/article/details/125947447