所有代码均通过G++编译器测试,仅为练手纪录。
//面试题17:合并两个排序的链表
//题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。
//例如链表1{1,3,5,7}和链表2{2,4,6,8},则合并之后的升序链表如链表3{1,2,3,4,5,6,7,8}.
//面试题17:合并两个排序的链表
//题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。
//例如链表1{1,3,5,7}和链表2{2,4,6,8},则合并之后的升序链表如链表3{1,2,3,4,5,6,7,8}.
ListNode *ListMerge(ListNode *pHead1,ListNode *pHead2)
{
if(NULL == pHead1)
{
return pHead2;
}
if (NULL == pHead2)
{
return pHead1;
}
ListNode *pMergeHead = NULL;
if(pHead1->m_nValue >= pHead2->m_nValue)
{
pMergeHead = pHead2;
pMergeHead->m_pNext = ListMerge(pHead1,pHead2->m_pNext);
}
else
{
pMergeHead = pHead1;
pMergeHead->m_pNext = ListMerge(pHead2, pHead1->m_pNext);
}
return pMergeHead;
}
ZhaiPillary
2016-12-25