题目
思路一 顺序合并
逐个合并,再将合并后的链表与下一个合并。
代码一
class Solution {
public:
ListNode* mergeLists(ListNode* a, ListNode* b){
if(a == nullptr) return b;
if(b == nullptr) return a;
ListNode* root = new ListNode(0);
ListNode* dummy = root;
while(a && b){
if(a -> val < b -> val){
root -> next = a;
a = a -> next;
}else{
root -> next = b;
b = b -> next;
}
root = root -> next;
}
root -> next = a ? a : b;
return dummy -> next;
}
ListNode* mergeKLists(vector<ListNode*>& lists) {
ListNode* ans = nullptr;
for(auto list:li