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

合并两个排序的链表

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

全部评论

相关推荐

2025-12-16 17:17
门头沟学院 产品经理
烤点老白薯:他第二句话的潜台词是想让你帮他点个瑞幸或者喜茶啥的
mt对你说过最有启发的一...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务