代码
// 合并两个有序链表
SListNode * MergeOrderedList(SListNode *p1First, SListNode *p2First)
{
SListNode*cur1 = p1First;
SListNode*cur2 = p2First;
SListNode*result = NULL;//结果链表
SListNode*tail = NULL;//结果链表中的最后一个结点,方便尾插
SListNode*next;//保存遍历过程中的下一个结点
while (cur1 != NULL && cur2 != NULL)
{
if (cur1->data <= cur2->data)
{
//应该取链表1的结点
if (result != NULL)
{
//结果链表不为空,直接在最后一个结点上做插入
//保存链表1的下一个结点,让循环继续
next = cur1->Next;
//插入过程
tail->Next = cur1;
cur1->Next = NULL;
//保存新的最后一个结点
tail = cur1;
cur1 = next;
}
else {