题目链接:https://leetcode-cn.com/problems/merge-k-sorted-lists/
题目描述:
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。
示例:
输入:
[
1->4->5,
1->3->4,
2->6
]
输出: 1->1->2->3->4->4->5->6
解法一:暴力法。
思路:先把各个链表中的元素放到一个整型List中,排序后然后再放到一个链表中。
class Solution {
public ListNode mergeKLists(ListNode[] lists) {
List<Integer> arrList = new ArrayList<>();
for (ListNode listNode : lists) {
if (listNode != null) {
ListNode curNode = listNode;
while (curNode != null) {
arrList.add(curNode.val);
curNode = curNode.next;
}
}
}
Collections.sort(arrList);
ListNode dummyNode = new ListNode(-1);
ListNode curNode = dummyNode;
for (Integer ele : arrList) {
curNode.next = new ListNode(ele);
curNode = curNode.next;
}
return dummyNode.next;
}
}