你们好,我是灵魂画师--茄子。技术水平通常,喜欢画画。算法
开始今天的正题。数组
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。code
示例 1:排序
输入:
[
1->4->5,
1->3->4,
2->6
]
输出: 1->1->2->3->4->4->5->6leetcode
解法:get
思路:io
let mergeKLists = function(lists) { let mergeTwoLists = (l1,l2) => { let preHead = new ListNode(-1) let preNode = preHead while(l1 && l2){ if(l1.val <= l2.val){ preNode.next = l1 l1 = l1.next }else{ preNode.next = l2 l2 = l2.next } preNode = preNode.next } preNode.next = l1 ? l1 : l2 return preHead.next } let n = lists.length if(n == 0) return null let res = lists[0] for(let i = 1;i < n;i++){ if(lists[i]){ res = mergeTwoLists(res,lists[i]) } } return res };
结合个人分析你是否是对这道题有了更清晰的认识了呢?function
以上就是个人思路以及解法了,但愿你们喜欢我,我会继续努力的ヾ(◍°∇°◍)ノ゙。(点个赞把我带走吧~~)class