题解 | #合并两个排序的链表#

合并两个排序的链表

https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};*/
class Solution {
  public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
        auto vHead1 = new ListNode(1);
        vHead1->next = pHead1;
        auto vHead2 = new ListNode(1);
        vHead2->next = pHead2;
        auto nHead = new ListNode(1);
        ListNode* nTail = nHead;
        ListNode* p = NULL, *q = NULL;
        while (vHead1->next && vHead2->next) {
            p = vHead1->next;
            q = vHead2->next;
            if (p->val < q->val) {
                vHead1->next = p->next;
                p->next = NULL;
                nTail->next = p;
                nTail = p;
            } else {
                vHead2->next = q->next;
                q->next = NULL;
                nTail->next = q;
                nTail = q;
            }
        }
		if(vHead1->next)nTail->next=vHead1->next;
		if(vHead2->next)nTail->next=vHead2->next;
		return nHead->next;
    }
};

全部评论

相关推荐

云边有个小卖铺儿:校招生违约率低,所以我要高😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务