合并两个排序的链表
问题描述:
输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。
链表结点定义:
struct ListNode
{
int m_value ;
ListNode* m_pNext;
}
利用递归的思想,来完成合并的过程。
代码:
ListNode* Merge(ListNode* pHead1 ,ListNode* pHead2)
{
if(NULL == pHead1)
return pHead2;
else if(NULL == pHead2)
return pHead1;
ListNode* pMergeHead = NULL ;
if(pHead1->m_value<=pHead2->m_value)
{
pMergeHead = pHead1;
pMergeHead->m_pNext = Merge(pHead1->m_pNext,pHead2);
}else
{
pMergeHead = pHead2;
pMergeHead->m_pNext = Merge(pHead1,pHead2->m_pNext);
}
return pMergeHead ;
}