题解 | #合并k个已排序的链表#
合并k个已排序的链表
https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *mergeKLists(vector<ListNode *> &lists) { if(!lists.size())return {}; vector<ListNode *> vt; for(auto& l : lists){ ListNode *p = l; while(p){ vt.push_back(p); p = p->next; } } auto cmp = [&](ListNode *vt1,ListNode *vt2){ return vt1->val < vt2->val ; }; sort(vt.begin(), vt.end(),cmp); for(int i = 0 ; i < vt.size()-1 ; ++i){ vt[i]->next = vt[i+1]; } vt[vt.size()-1]->next = nullptr; return vt[0]; } };