【力扣hot100题】(033)合并K个升序链表

想法十分简单粗暴但有效,将首个链表头作为起点,然后依次遍历各个链表,每个链表再将节点依次插入首个链表中。

cpp 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* mergeKLists(vector<ListNode*>& lists) {
        if(lists.size()==0) return nullptr;
        ListNode* result=new ListNode(0,lists[0]);
        for(int i=1;i<lists.size();i++){
            ListNode* l=lists[i];
            ListNode* r=result->next;
            ListNode* pre=result;
            while(l){
                ListNode* ln=l->next;
                bool b=0;
                while(r){
                    if(r->val>=l->val){
                        b=1;
                        pre->next=l;
                        l->next=r;
                        pre=l;
                    }
                    if(b==1) break;
                    pre=r;
                    r=r->next;
                }
                if(b==0){
                    pre->next=l;
                    break;
                }
                l=ln;
            }
        }
        return result->next;
    }
};
相关推荐
左灯右行的爱情2 分钟前
JVM-卡表
java·jvm·算法
奋斗者1号1 小时前
逻辑回归:使用 S 型函数进行概率预测
算法·机器学习·逻辑回归
CodeJourney.1 小时前
基于DeepSeek与Excel的动态图表构建:技术融合与实践应用
数据库·人工智能·算法·excel
Gerry_Liang1 小时前
LeetCode热题100——283. 移动零
数据结构·算法·leetcode
刘大猫261 小时前
Arthas sc(查看JVM已加载的类信息 )
人工智能·后端·算法
web安全工具库2 小时前
Python内存管理之隔代回收机制详解
java·jvm·算法
大学生亨亨2 小时前
蓝桥杯之递归
java·笔记·算法·蓝桥杯
学Java的小半2 小时前
用键盘实现控制小球上下移动——java的事件控制
java·开发语言·算法·intellij-idea·gui·事件监听
缘友一世2 小时前
线性回归之归一化(normalization)
算法·回归·线性回归
巷北夜未央2 小时前
杂谈-有感而发
人工智能·算法·机器学习