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