【LeetCode】#23合并K个排序链表(Merge k Sorted Lists)
题目描述
合并 k 个排序链表,返回合并后的排序链表。
示例
输入:
[
1->4->5,
1->3->4,
2->6
]
输出: 1->1->2->3->4->4->5->6
Description
Merge k sorted linked lists and return it as one sorted list.
Example
Input:
[
1->4->5,
1->3->4,
2->6
]
Output: 1->1->2->3->4->4->5->6
解法
class Solution {
public ListNode mergeKLists(ListNode[] lists) {
if(lists.length==0){
return null;
}
int sum = 0;
for(int i=0; i<lists.length; i++){
ListNode l = lists[i];
while(l!=null){
sum++;
l = l.next;
}
}
int[] nums = new int[sum];
int k = 0;
for(int i=0; i<lists.length; i++){
ListNode l = lists[i];
while(l!=null){
nums[k++] = l.val;
l = l.next;
}
}
if(nums.length==0){
return null;
}
Arrays.sort(nums);
ListNode head = new ListNode(nums[0]);
ListNode l = head;
for(int i=1; i<nums.length; i++){
head.next = new ListNode(nums[i]);
head = head.next;
}
return l;
}
}