合并k个排序链表

合并k个排序链表,返回合并后的排序链表,具体查看力扣23题。
本题最正统的解法应该是小根堆的思路,本题中暗示小根堆的点:
排序链表,相当于优先级队列,求解合并后的排序链表其实就是相当于求解不同优先级队列合并到一起之后求总的优先级队列,优先级队列的形式就是堆的形式。

解法一:
暴力解法,时间限制导致无法通过。思路就是通过比较两个链表中Node哪个小,小的则作为新建链表的下一个节点,并将指针挪到小的那个的下一个。相当于冒泡排序,复杂度很高。
合并k个排序链表

解法二:
将解法一的思路进行改进,解法一之后比较是将新建号的链表和下一个链表进行比较,整体比较长度较大,解法二通过中分将左右两边分别进行比较,用到了归并排序的思想,将整个大的排序整理变成依次的小排序,整合之后再进行最后的整合,复杂度为O(NlogK)。K为链表个数。
合并k个排序链表

解法三:
采用小根堆进行求解,利用堆的性质,将链表整理到小根堆中,利用小根堆的性质,头结点永远是最小的那个,从而每次将堆中的头结点返回给新链表。
合并k个排序链表