力扣演算法題 23 合併K個公升序鍊錶 C語言實現

2021-10-25 00:26:53 字數 940 閱讀 3929

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

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

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

輸出:1、每次迴圈新增乙個節點,並將新增節點所在的鍊錶移位,賦值到陣列中;

2、每次迴圈中遍歷陣列,尋找最小值所在的節點,即為新增節點;

/**

* definition for singly-linked list.

* struct listnode ;

*/struct listnode*

mergeklists

(struct listnode*

* lists,

int listssize)

else

}while

(iflag)

}/*獲取最小值和最小序列*/

for(i=i+

1;i/*連線鍊錶*/

if(head ==

null

)else

/*移動鍊錶*/

lists[imin]

= lists[imin]

->next;

/*記錄空鍊錶個數,全部為空時,停止迴圈*/

if(lists[imin]

==null)}

}return head;

}

第23題 合併K個公升序鍊錶

23.合併k個公升序鍊錶方法一 分治策略 definition for singly linked list.public class listnode listnode int val listnode int val,listnode next 執行用時 2 ms,記憶體消耗 40.4 mb c...

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

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