16、合并两个排序的链表

题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    {
        if(pHead1==NULL)
            return pHead2;
        if(pHead2==NULL)
            return pHead1;
        
        ListNode* dummy = new ListNode(-1);
        ListNode* p = dummy;  //与dummy->next = p的思路不同
        
        while(pHead1!=NULL&&pHead2!=NULL)
        {
            if(pHead1->val<pHead2->val)
            {
                p->next = pHead1;
                pHead1 = pHead1->next;
                p = p->next;
            }    
            else
            {
                p->next = pHead2;
                pHead2 = pHead2->next;
                p = p->next;
            }    
        }
        if(pHead1==NULL)
            p->next = pHead2;
        else if(pHead2==NULL)
            p->next = pHead1;
        return dummy->next;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容