程序算法思想很简单,不作过多的介绍,直接上核心代码:
typedef struct ListNode{
int m_nValue;
ListNode* m_pNext;
};
//递归解法
ListNode* Merge(ListNode* pHead1,ListNode* pHead2)
{
if(pHead1==NULL)
{
return pHead2;
}
if(pHead2==NULL)
{
return pHead1;
}
ListNode* pMergedHead=NULL;
if(pHead1->m_nValue<pHead2->m_nValue)
{
pMergedHead=pHead1;
pMergedHead->m_pNext=Merge(pHead1->m_pNext,pHead2);
}
else
{
pMergedHead=pHead2;
pMergedHead->m_pNext=Merge(pHead1,pHead2->m_pNext);
}
return pMergedHead;
}