当前位置: 首页 > java >正文

leetcode23-合并K个升序链表

leetcode 23
在这里插入图片描述

思路

  • 遍历所有链表收集节点:将每个链表的节点断开其 next 指针后存入数组
  • 对数组进行排序:使用 JavaScript 的内置 sort 方法对节点数组按值排序
  • 重新连接排序后的节点:遍历排序后的数组,依次连接每个节点形成新链表

时间复杂度:O (n log n) 空间复杂度:O (n)

实现

var mergeKLists = function (lists) {const arr = [];for (let i = 0; i < lists.length; i++) {let cur = lists[i];while (cur) {const node = cur.next;cur.next = null;arr.push(cur);cur = node;}}if(!arr.length) return null;// 排序arr.sort((a, b) => a.val - b.val)let head = arr[0];let cur = head;for (let i = 1; i < arr.length; i++) {cur.next = arr[i]cur = cur.next;}return head;
};
http://www.xdnf.cn/news/14279.html

相关文章:

  • Docker + PyFlink1.17 数据写入 MySQL
  • 技术选型指南:如何选择更适合项目的开源语言及其生态系统
  • ESP32 005 MicroPython I2S 实现音频传输与播放
  • 【数据可视化】Pyecharts-家乡地图
  • 从0开始学习语言模型--Day02-如何最大化利用硬件
  • Python OpenCV 4.10 库详解
  • 中科院医学1区Top:解放军医学院利用多组学+网络药理学+转录组测序联合解析苗药七角生白胶囊抗白细胞减少症的分子机制
  • AORSA编译指南
  • 探索niri:让你的Linux桌面布局无拘无束
  • HTTP 协议里15种请求方法及示例
  • 无监督 vs 有监督的本质区别
  • 数据赋能(256)——数据赋能业务——产品和服务变现
  • Linux 命令:source 用法详解与直接执行脚本的区别
  • 2.7 Conan简单使用
  • open GL 和 vulkan
  • Docker容器中运行OpenMPI并行程序, 参数调优
  • 嵌入式学习笔记 - HAL库对外设的封装
  • 【Linux命令】查看内核版本命令
  • C++批量读取指定后缀文件
  • 【C++进阶篇】哈希的应用(位图)
  • 深度解析Vue.js组件开发与实战案例
  • 商用密码基础知识介绍(上)
  • python与java的区别
  • 深入解析ReentrantReadWriteLock读写锁机制
  • 【python深度学习】Day53 对抗生成网络
  • 人工智能学习23-BP-图像编码
  • c++编译第三方项目报错# pragma warning( disable: 4273)
  • HTML5白云飘飘动态效果教程
  • 华为云Flexus+DeepSeek征文 | 基于华为云Dify-LLM应用开发平台构建写作助手
  • 达梦分布式集群DPC_DPC的执行计划新增操作符详解_yxy