class Solution { public: ListNode *mergeKLists(vector<ListNode *> &lists) { int n=lists.size(); if(n==0)return NULL; ListNode *head=new ListNode(INT_MIN); ListNode *ret=head; int min; bool finish; while(1) { finish=true; min=INT_MAX; int i;int mini; for(i=0;i<lists.size();i++) { if(lists[i]!=NULL) { if(lists[i]->val<min) { min=lists[i]->val; mini=i; finish=false; } } } if(finish)break; head->next=lists[mini]; head=head->next; lists[mini]=lists[mini]->next; } return ret->next; } };