非最优解
class Solution {
public ListNode mergeKLists(ListNode[] lists) {
//创建优先队列
PriorityQueue<Integer> heap = new PriorityQueue();
//遍历每一个链表 获取链表中的每一个值,加入优先队列 形成小根堆
for(int i =0; i<lists.length;i++){
ListNode node = lists[i];
while(node!=null){
heap.offer(node.val);
node=node.next;
}
}
//创建返回链表
ListNode result = new ListNode(0);
创建移动节点
ListNode head= result;
while(heap.size()>0){
//从小根堆取出值 创建成一个节点
ListNode nextNode = new ListNode(heap.poll());
//让每一个节点的next指针指向创建的节点
head.next = nextNode;
//head节点变成刚刚创建的节点
head = head.next;
}
//返回结果
return result.next;
}
}