LeetCode 合併K個公升序鍊錶

2021-10-17 14:47:41 字數 1516 閱讀 9205

原題鏈結: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 = 

輸出:

提示: 歸併

時間複雜度o(n

×log

k)o(n \times logk)

o(n×lo

gk),k為鍊錶的個數,n為鍊錶中節點個數

class

solution

public

static listnode merge

(listnode[

] lists,

int left,

int right)

public

static listnode merge

(listnode list1, listnode list2)

else

cur = cur.next;

} cur.next = cur1 == null ? cur2 : cur1;

return dummynode.next;

}}

暴力迭代

時間複雜度o(n

×k)o(n \times k)

o(n×k)

,k為鍊錶的個數,n為鍊錶中節點個數

class

solution

return res;

}public

static listnode merge

(listnode list1, listnode list2)

else

cur = cur.next;

} cur.next = cur1 == null ? cur2 : cur1;

return dummynode.next;

}}

leetcode 困難 合併k個公升序鍊錶

思路一 鍊錶逐個兩兩合併 超時了 參考 leetcode 簡單 21 合併兩個有序鍊錶 definition for singly linked list.class listnode def init self,val 0,next none self.val val self.next next...

Leetcode 合併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...

leetcode 合併K個公升序鍊錶 23

給你乙個鍊錶陣列,每個鍊錶都已經按公升序排列。請你將所有鍊錶合併到乙個公升序鍊錶中,返回合併後的鍊錶。遍歷所有鍊錶將節點值加入列表中,對列表進行公升序 根據列表建立新的鍊錶 將所有鍊錶元素新增至列表中,然後對列表進行排序,然後基於列表建立鍊錶,def mergeklists v0 self,list...