牛客网 合并两个排序的链表

发布时间 2023-06-15 22:09:05作者: 弈星

题目链接:合并两个排序的链表_牛客题霸_牛客网 (nowcoder.com)

代码(C++):

#include <cstdlib>
class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
        ListNode *p = pHead1,*q = pHead2,*s = new ListNode(0);//新开结点1,指针指向NULL;此时结点的VAL值为0
        s->val = -1;
        ListNode *r = s;
        if (!p) return q;
        if (!q) return p;
        while(p != nullptr && q != nullptr){
            if(p->val >= q->val){
                r->next = q;
                q = q->next;
            }else{
                r->next = p;;
                p = p->next;
            }
            r = r->next;
        }
        r->next = p ? p : q;
        return s->next;
    }
};