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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单链表 --- 合并两个单链表相关的知识,希望对你有一定的参考价值。

合并单链表 -->

一、解决方法:

  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;
}


本文出自 “花开彼岸” 博客,请务必保留此出处http://zxtong.blog.51cto.com/10697148/1757698

以上是关于单链表 --- 合并两个单链表的主要内容,如果未能解决你的问题,请参考以下文章

C语言单链表合并

合并两个排序的单链表

合并两个单链表(链表方式)

合并两个已序单链表

数据结构(C语言版)严蔚敏->单链表的定义及合并两个有序单链表

栈和队列----合并两个有序的单链表