23. 合并 K 个升序链表
23. 合并K个升序链表
题目:
题解:
java
复制代码
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode mergeKLists(ListNode[] lists) {
ListNode root = new ListNode();
List<Integer> list = new ArrayList<>();
for(int i=0;i<lists.length;i++) {
ListNode node = lists[i];
ListNode cur = node;
while(cur != null) {
list.add(cur.val);
cur = cur.next;
}
}
if (list.isEmpty()) {
return null;
}
list.sort(null);
ListNode t = new ListNode();
ListNode c = t;
for(int i=0;i<list.size();i++) {
t.val = list.get(i);
if(i!=list.size()-1) {
t.next = new ListNode();
}
else {
t.next = null;
}
t = t.next;
}
return c;
}
}