本文主要是介绍力扣23. 合并 K 个升序链表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给你一个链表数组,每个链表都已经按升序排列。
请你将所有链表合并到一个升序链表中,返回合并后的链表。
示例 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 = [[]] 输出:[]
/*** @param {ListNode[]} lists* @return {ListNode}*/// function ListNode(val, next) {
// this.val = (val === undefined ? 0 : val)
// this.next = (next === undefined ? null : next)
// }
var mergeKLists = function (lists) {if(lists.length==1) return lists[0]let head = new ListNode(null, null)let res = headlet l1 = lists[0]for (let i = 1; i < lists.length; i++) {let l2 = lists[i]while (l2 != null && l1 != null) {if (l1.val <= l2.val) {head.next = l1head = head.nextl1 = l1.next} else {head.next = l2head = head.nextl2 = l2.next}}if (l1 == null) {head.next = l2}if (l2 == null) {head.next = l1}l1 = res.nexthead = res}return res.next
};
考虑两两合并链表
这篇关于力扣23. 合并 K 个升序链表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!