合并排序链表

  题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。

分析:




代码稳定性:

 考虑4种情况:

 (1)第一个链表是空链表,返回第二个链表。

 (2)第二个链表是空链表,返回第一个链表。

 (3)两个链表都是空链表,返回空链表。

 (4)两个链表有多个结点,存在值相等的结点。

 (5)两个链表都只有一个结点。



/* 合并两个排序的链表
 *输入:两个排序链表的头结点指针
 *输出:合并的链表或者空指针(当两链表都为空的时候)
*/
node* mergeList(node* head1,node* head2)
{
	if(head1==NULL)return head2;
	if(head2==NULL)return head1;
	node* mList=NULL;//合并的链表
	if(head1->value<=head2->value){
		mList=head1;
        mList->next=mergeList(head1->next,head2);
	}
	if(head1->value>head2->value){
		mList=head2;
		mList->next=mergeList(head1,head2->next);
	}
 	return mList;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值