<span style="font-size:18px;">/*面试题17
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是递增排序的。
struct ListNode
{
int m_nValue;
ListNode* m_pNext;
};
可能出现的错误:一是合并过程链表出现断裂或没有做到递增排序,二是特殊的输入就会崩溃。
*/
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=Merge(pHead1,pHead2->m_pNext);
}
return pMergeHead;
}
//测试用例包括:功能测试(输入两个多个结点的链表,结点的值不同或多个相同),特殊输入测试(两个链表中一个或两个头结点为NULL指针,只有一个头结点)</span>
面试题17:合并两个排序链表
最新推荐文章于 2019-08-02 18:12:33 发布