合併K個公升序鍊錶

2021-10-22 03:59:23 字數 1282 閱讀 9066

給你乙個鍊錶陣列,每個鍊錶都已經按公升序排列。

請你將所有鍊錶合併到乙個公升序鍊錶中,返回合併後的鍊錶。

示例 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 =

輸出:

/**

* definition for singly-linked list.

* struct listnode

* listnode(int x) : val(x), next(nullptr) {}

* listnode(int x, listnode *next) : val(x), next(next) {}

* };

*/class

solution

else

headpre=headpre-

>next;}if

(a)if

(b)return head.next;

//返回頭結點的下乙個結點物件

} listnode*

mergeklists

(vector>

& lists)

if(lists.

size()

==1)if

(lists.

size()

==2) vector> sub1;

vector> sub2;

int mid=lists.

size()

/2;for

(int i=

0;i)for

(int i=mid;isize()

;i++

) listnode* l1=

mergeklists

(sub1)

;//對前半部分結點進行排序

listnode* l2=

mergeklists

(sub2)

;//對後半部分進行排序

return

mergetwolists

(l1,l2);}

};

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 ...

合併K個公升序鍊錶20201225

2.優化的優先佇列 3.兩兩合併 給你乙個鍊錶陣列,每個鍊錶都已經按公升序排列。請你將所有鍊錶合併到乙個公升序鍊錶中,返回合併後的鍊錶。示例 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 將它們合併到乙...

LeetCode 合併K個公升序鍊錶

原題鏈結 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 將它們合併到...