其实直接将结点丢进数组里快排就行了。

class Solution {

public:

 ListNode *mergeKLists(vector<ListNode *> &lists) {

        vector<ListNode *>v;

 for (auto head:lists) {

 while (head) {

 v.emplace_back(head);

                head=head->next;

            }

        }

 sort(v.begin(),v.end(),[](const ListNode*a,const ListNode*b)->bool{

 return a->val<b->val;

 });

 ListNode dummmy(0);

 ListNode*head = &dummmy;

 for (auto&x:v) {

 head->next = x;

            head= x;

        }

 head->next = nullptr;

 return dummmy.next;

    }

};