题目:
23. Merge k Sorted Lists(hard)
解题思路:
这个是合并两个有序链表的延申版本。
两两合并这k个排序链表就可以
代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22java:
public ListNode mergeKLists(ListNode[] lists) {
if(lists == null || lists.length == 0 ) return null;
ListNode head = lists[0];
for(int i = 1;i<lists.length;i++){
ListNode node = lists[i];
head = merge(head,node);
}
return head;
}
private ListNode merge(ListNode l1,ListNode l2){
if(l1 == null) return l2;
if(l2 == null) return l1;
if(l1.val <= l2.val){
l1.next = merge(l1.next,l2);
return l1;
}else{
l2.next = merge(l1,l2.next);
return l2;
}
}