数据结构算法-链表(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;
}
		
	
			
	
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值