在我之前提交的合并有序单链表上稍加改造即可。
struct node{
int data;
node* next;
};
typedef node* List;
List mergeSortedLinkList(List &list1, List &list2)
{
if (list1 == NULL)
{
return list2;
}
if (list2 == NULL)
{
return list1;
}
List pList1 = list1;
List pList2 = list2;
List mergedList = new node; //使用一个头节点,只是来指向合并好的链表,不存储数据
List pCurNode = mergedList;
while(pList1 && pList2)
{
if (pList1->data < pList2->data)
{
pList1 = pList1->next;
}
else if (pList1->data > pList2->data)
{
pList2 = pList2->next;
}
else
{
pCurNode->next = pList1;
pCurNode = pList1;
pList1 = pList1->next;
pList2 = pList2->next;
}
}
return mergedList;
}`enter code here`