23. 合并 K 个升序链表

class Solution {
public:
ListNode* mergeTwoList(ListNode* listOne, ListNode* listTwo){
if((!listOne) || (!listTwo)){
return listOne ? listOne : listTwo;
}
ListNode* dummyNode = new ListNode();
ListNode* cur = dummyNode;
while(listOne && listTwo){
if(listOne->val <= listTwo->val){
cur->next = listOne;
listOne = listOne->next;
}
else{
cur->next = listTwo;
listTwo = listTwo->next;
}
cur = cur->next;
}
cur->next = listOne ? listOne : listTwo;
return dummyNode->next;
}
ListNode* mergeKLists(vector<ListNode*>& lists) {
ListNode* result = nullptr;
for(auto list : lists){
result = mergeTwoList(result, list);
}
return result;
}
};