单链表 --- 合并两个单链表

合并单链表 -->

一、解决方法:

  1. 确保两个单链表不为空,且二者皆有序(若无序,则先进行排序)

  2. 创建新的单链表,并比较原本两个单链表数据大小,较小者置于新单链表中

  3. 逐步将两个单链表的数据置于新单链表中,直至二者为空


二、程序代码:

ListNode* MergeList(ListNode *L1,ListNode *L2)//合并两个单链表
{
	ListNode *newHead=NULL;
	ListNode *tail=NULL;
	if(L1==NULL)
	{
		return L2;
	}
	if(L2==NULL)
	{
		return L1;
	}
	if(L1->_data < L2->_data)
	{
		newHead=L1;
		L1=L1->_next;
	}
	else
	{
		newHead=L2;
		L2=L2->_next;
	}
	tail=newHead;
	while(L1 && L2)
	{
		if(L1->_data < L2->_data)
		{
			tail->_next=L1;
			L1=L1->_next;
		}
		else
		{
			tail->_next=L2;
			L2=L2->_next;
		}
		tail=tail->_next;
	}
	if(L1)
	{
		tail->_next=L1;
	}
	if(L2)
	{
		tail->_next=L2;
	}
	return tail;
}


你可能感兴趣的:(合并,单链表)