/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: ListNode* merge(ListNode *node1, ListNode *node2) { ListNode head(0); ListNode* cur = &head; while (node1 && node2) { if (node1->val < node2->val) { cur->next = node1; node1 = node1->next; } else { cur->next = node2; node2 = node2->next; } cur = cur->next; } if (node1) { cur->next = node1; } if (node2) { cur->next = node2; } return head.next; } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param lists ListNode类vector * @return ListNode类 */ ListNode* mergeKLists(vector<ListNode*>& lists) { ListNode* cur = nullptr; for (int i = 0; i < lists.size(); i++) { cur = merge(cur, lists[i]); } return cur; } };