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;
    }
};
相关推荐
tjl521314_216 小时前
04C++ 名称空间(Namespace)
开发语言·c++
ximu_polaris6 小时前
设计模式(C++)-行为型模式-备忘录模式
c++·设计模式·备忘录模式
tankeven10 小时前
C++ 智能指针
c++
木井巳12 小时前
【递归算法】单词搜索
java·算法·leetcode·决策树·深度优先
handler0113 小时前
【算法模板】最小生成树:稠密图选 Prim,稀疏图选 Kruskal
c语言·数据结构·c++·算法
许长安13 小时前
RPC 异步调用基本使用方法:基于官方helloworld-async 示例
c++·经验分享·笔记·rpc
Chase_______13 小时前
LeetCode 2461 & 1423:定长滑窗变体精讲,从 HashMap 判重到正难则反的转化技巧
算法·leetcode·职场和发展
sparEE13 小时前
c++面向对象:对象的赋值
开发语言·c++
此生决int13 小时前
快速复习之数据结构篇——栈和队列
数据结构·c++
H_BB14 小时前
第17届蓝桥杯备战历程
c++·算法·职场和发展·蓝桥杯