你們好,我是靈魂畫師--茄子。技術水平通常,喜歡畫畫。算法
開始今天的正題。數組
合併 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