您的位置:首页 > 其它

合并两个排序的链表

2015-09-28 09:55 169 查看
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序。

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* 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;
}


测试用例

功能测试(输入的两个链表有多个结点,结点的值互不相同或者存在值相等的多个结点)

特殊输入测试(两个链表的一个或者两个头结点为NULL指针、两个链表中只有一个结点)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  链表 合并