用c写算法3[合并两个排序的链表]

题目:将两个已经排序的单向链表合并为一个链表

解答:

// 归并版本
ListNode * mergeList1(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 = mergeList1(pHead1->m_pNext, pHead2);
    } else {
        pMergeHead = pHead2;
        pMergeHead->m_pNext = mergeList1(pHead1, pHead2->m_pNext);
    }

    return pMergeHead;
}

 

 

 

posted on 2013-03-28 08:06  jiyiyouxin  阅读(241)  评论(0)    收藏  举报