class Solution {
public:
ListNode* merge2Lists(ListNode* node1, ListNode* node2){
if(node1 == NULL) return node2;
if(node2 == NULL) return node1;
if(node1->val > node2->val){
node2->next = merge2Lists(node2->next, node1);
return node2;
}
else{
node1->next = merge2Lists(node1->next, node2);
return node1;
}
}
ListNode* mergeKLists(vector<ListNode*>& lists) {
ListNode* ListNode1;
ListNode* ListNode2;
ListNode* ListNode3;
queue<ListNode*> que;
for(int i = 0; i < lists.size(); i++)
que.push(lists[i]);
if(lists.size() == 0)
return NULL;
while(que.size() != 1){
ListNode1 = que.front();
que.pop();
ListNode2 = que.front();
que.pop();
ListNode3 = merge2Lists(ListNode1, ListNode2);
que.push(ListNode3);
}
ListNode1 = que.front();
return ListNode1;
}
};