C++ | Leetcode C++题解之第21题合并两个有序链表

题解:

题解:

cpp 复制代码
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        ListNode* preHead = new ListNode(-1);

        ListNode* prev = preHead;
        while (l1 != nullptr && l2 != nullptr) {
            if (l1->val < l2->val) {
                prev->next = l1;
                l1 = l1->next;
            } else {
                prev->next = l2;
                l2 = l2->next;
            }
            prev = prev->next;
        }

        // 合并后 l1 和 l2 最多只有一个还未被合并完,我们直接将链表末尾指向未合并完的链表即可
        prev->next = l1 == nullptr ? l2 : l1;

        return preHead->next;
    }
};
相关推荐
flashlight_hi7 分钟前
LeetCode 分类刷题:1901. 寻找峰值 II
python·算法·leetcode
小何好运暴富开心幸福33 分钟前
C++之再谈类与对象
开发语言·c++·vscode
郝学胜-神的一滴1 小时前
中秋特别篇:使用QtOpenGL和着色器绘制星空与满月
开发语言·c++·算法·软件工程·着色器·中秋
JuneXcy2 小时前
C++知识点总结用于打算法
c++·算法·图论
ajassi20002 小时前
开源 C++ QT QML 开发(六)自定义控件--波形图
c++·qt·开源
_OP_CHEN2 小时前
C++基础:(八)STL简介
开发语言·c++·面试·stl
it技术3 小时前
C++ 设计模式原理与实战大全-架构师必学课程 | 完结
c++
zhuzhuxia⌓‿⌓4 小时前
线性表的顺序和链式存储
数据结构·c++·算法
小苏兮4 小时前
【C++】stack与queue的使用与模拟实现
开发语言·c++