[路飞]leetcode-23.合并K个升序链表

67 阅读1分钟

给你一个链表数组,每个链表都已经按升序排列。

请你将所有链表合并到一个升序链表中,返回合并后的链表。 力扣原文

示例 1:

输入: lists = [[1,4,5],[1,3,4],[2,6]]
输出: [1,1,2,3,4,4,5,6]
解释: 链表数组如下:
[
  1->4->5,
  1->3->4,
  2->6
]
将它们合并到一个有序链表中得到。
1->1->2->3->4->4->5->6

示例 2:

输入: lists = []
输出: []

示例 3:

输入: lists = [[]]
输出: []

解题:

var mergeKLists = function (lists) {
  let result = [];
  for (const cur of lists) {
      while(cur){
        result.push(cur.val) 
        cur=cur.next 
      }
  }
  result.sort((a,b)=>a-b)
  const emptyHead=new ListNode(-1);
  let cur=emptyHead
  for (const iterator of result) {
    cur.next=new ListNode(iterator)
    cur=cur.next
  }
  return emptyHead.next
};