class Solution { public: ListNode *mergeKLists(vector<ListNode *> &lists) { // 扔到数组里可以解决 vector<int> arr; ListNode* head = new ListNode(0); ListNode* ans = head; int n = lists.size(); for (int i = 0; i < n; ++i) { while(lists[i]) { arr.push_back(lists[i]->val); lists[i] = lists[i]->next; } } sort(arr.begin(), arr.end()); for (auto a : arr) { // 每次都生成新的下一个链表节点 head->next = new ListNode(a); head = head->next; } return ans->next; } };