import java.util.ArrayList;
/**
* @Author:Aliyang
* @Data: Created in 下午10:43 18-6-16
* merge-k-sorted-lists:别人解法
* 思路:使用归并排序,递归分治
**/
public class T127 {
public static class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
public ListNode mergeKLists(ArrayList lists) {
return partion(lists,0,lists.size()-1);
}
// 将整个链表数组进行递归分治
public static ListNode partion(ArrayList lists,int s,int e){
if(s==e) return lists.get(s);
if(s lists=new ArrayList<>();
ListNode head=new ListNode(1);
ListNode realHead=head;
head.next=new ListNode(2);
head=head.next;
head.next=new ListNode(6);
head=head.next;
lists.add(realHead);
ListNode head1=new ListNode(3);
ListNode realHead1=head1;
head1.next=new ListNode(3);
head1=head1.next;
head1.next=new ListNode(5);
head1=head1.next;
lists.add(realHead1);
ListNode res=t.mergeKLists(lists);
while (res!=null){
System.out.print(res.val+",");
res=res.next;
}
}
}