LeetCode hot 力扣热题100 合并 K 个升序链表

class Solution {
public:
    // 合并两个已排序链表 a 和 b
    ListNode *merge(ListNode *a, ListNode *b) {
        // 如果其中一个链表为空,返回另一个链表
        if (!a || !b) return a ? a : b;

        // 使用虚拟头节点来简化边界情况处理
        ListNode dummy;
        // temp 指向虚拟头节点,用来构建最终的合并链表
        ListNode *temp = &dummy, *a_temp = a, *b_temp = b;

        // 逐个比较两个链表的节点,选择较小的节点连接到合并链表上
        while (a_temp && b_temp) {
            // 如果 a 的当前节点值小于 b 的当前节点值
            if (a_temp->val < b_temp->val) {
                // 连接 a 的当前节点到 temp 链表中
                temp->next = a_temp;
                // 移动 a 链表的指针到下一个节点
                a_temp = a_temp->next;
            } else {
                // 连接 b 的当前节点到 temp 链表中
                temp->next = b_temp;
                // 移动 b 链表的指针到下一个节点
                b_temp = b_temp->next;
            }
            // temp 移动到下一个节点
            temp = temp->next;
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值