1. ListNode *mergeKLists(vector<ListNode *> &lists) {
    2. int K = 1000;
    3. int res[2001];
    4. memset(res, 0, sizeof(res));
    5. ListNode *head,*tNode;
    6. for(int i = 0; i<lists.size(); i++){
    7. tNode = lists[i];
    8. while(tNode){
    9. res[tNode->val+K]++; // 记录所有节点的数量
    10. tNode = tNode->next;
    11. }
    12. }
    13. head = new ListNode(0);
    14. tNode = head;
    15. for(int i = 0;i<2001;i++){
    16. while(res[i]>0){
    17. tNode->next = new ListNode(i-K);
    18. tNode = tNode->next;
    19. res[i]--;
    20. }
    21. }
    22. return head->next;
    23. }