做企業(yè)網(wǎng)站的好處域名注冊平臺有哪些
描述
合并 k 個升序的鏈表并將結(jié)果作為一個升序的鏈表返回其頭節(jié)點。
數(shù)據(jù)范圍:
示例1
輸入:
[{1,2,3},{4,5,6,7}]
返回值:
{1,2,3,4,5,6,7}示例2
輸入:
[{1,2},{1,4,5},{6}]
返回值:
{1,1,2,4,5,6}
解題思路
利用兩個單鏈表合并成一個有序鏈表的方法,先將數(shù)組前兩個鏈表進行合并,將合并后的鏈表返回,然后再與下一個鏈表進行合并
/** function ListNode(x){* this.val = x;* this.next = null;* }*/
/*** 代碼中的類名、方法名、參數(shù)名已經(jīng)指定,請勿修改,直接返回方法規(guī)定的值即可*** @param lists ListNode類一維數(shù)組* @return ListNode類*/
function mergeKLists(lists) {if(lists.length === 1){return lists[0]}// write code here// let list,list2,list1let list = lists[0]for (let i = 0; i < lists.length - 1; i++) {list = Merge(list,lists[i+1])// if(i === 0){// list1 = lists[i];// list2 = lists[i+1];// // list2 = list1.next// list = Merge(list1, list2);// // return list// }else{// list1 = list// console.log(list)// list2 = lists[i+1]// list = Merge(list, list2)// // return list// }}return list
}
function Merge(list1, list2) {if (list1 === null) return list2;if (list2 === null) return list1;if (list1.val < list2.val) {list1.next = Merge(list1.next, list2);return list1;// console.log('list1',list1)} else {list2.next = Merge(list1, list2.next);return list2;}
}module.exports = {mergeKLists: mergeKLists,
};