合并2个排序的链表

主要也是考察指针的运用,和代码的鲁棒性。

直接上代码:

ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
    if( pHead1 == NULL && pHead2 == NULL)
        return NULL;

    if( pHead1 == NULL )
        return pHead2;
    else if(pHead2 == NULL)
        return pHead1;

    ListNode* p_merge = NULL;

    if(pHead1->value < pHead2->value)
    {
        p_merge = pHead1;
        p_merge->pNext = Merge(pHead1->pNext,pHead2);
    }
    else
    {
        p_merge = pHead2;
        p_merge->pNext = Merge(pHead1,pHead2->pNext);
    }
    return p_merge;
}

采用递归方法,代码简洁。当然如果链表很长效率会比较差

posted @ 2013-03-04 14:14  没离开过  阅读(89)  评论(0)    收藏  举报