您的位置:首页 > 编程语言 > C语言/C++

C++单向链表之合并链表

2016-04-27 13:29 423 查看
代码如下
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
if (pHead1 == NULL)
{
return pHead2;
}
else if (pHead2 == NULL)
{
return pHead1;
}
ListNode* pMergeHead = NULL;
if (pHead1->m_nValue<pHead2->m_nValue)
{
pMergeHead = pHead1;
pMergeHead->m_pNext = Merge(pHead1->m_pNext, pHead2);
}
else
{
pMergeHead = pHead2;
pMergeHead->m_pNext = Merge(pHead1, pHead2->m_pNext);
}
return pMergeHead;
}
ListNode* Test(ListNode* pHead1, ListNode* pHead2)
{
printf("The first list is:\n");
PrintList(pHead1);
printf("The second list is:\n");
PrintList(pHead2);
printf("The Merged list is:\n");
ListNode*pMergeHead = Merge(pHead1, pHead2);
PrintList(pMergeHead);
return pMergeHead;
}
void Test1()
{
ListNode* pNode1 = CreateListNode(1);
ListNode* pNode3 = CreateListNode(3);
ListNode* pNode5 = CreateListNode(5);

CoonnectListNode(pNode1, pNode3);
CoonnectListNode(pNode3, pNode5);
ListNode* pNode2 = CreateListNode(2);
ListNode* pNode4 = CreateListNode(4);
ListNode* pNode6 = CreateListNode(6);

CoonnectListNode(pNode2, pNode4);
CoonnectListNode(pNode4, pNode6);
ListNode* pMergeHead = Test(pNode1, pNode2);
DestroyList(pMergeHead);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: