public class Solution implements Comparator<ListNode>{
public int compare(ListNode t1,ListNode t2)
{
return t1.val-t2.val;
}
public ListNode mergeKLists(List<ListNode> lists)
{
if(lists==null||lists.size()==0)
return null;
int len=0;
int i=0;
while(i<lists.size())//delete the duplicated linkedlist
{
if(lists.get(i)==null)
{
lists.remove(i);
i=0;
continue;
}
i++;
}
if(lists.size()==0)//has no node
return null;
else if(lists.size()==1)//just have one linkedlist
return lists.get(0);
List<ListNode>returnList=new ArrayList<ListNode>();
ListNode cur=null;
for(i=0;i<lists.size();i++)
{
cur=lists.get(i);
while(cur!=null)
{
returnList.add(cur);
cur=cur.next;
}
}
Collections.sort(returnList, new Solution());
ListNode pre=returnList.get(0);
cur=null;
len=returnList.size();
for(i=1;i<len;i++)
{
cur=returnList.get(i);
pre.next=cur;
pre=cur;
}
returnList.get(len-1).next=null;
return returnList.get(0);
}
}leetcode_23_Merge k Sorted Lists
原文:http://blog.csdn.net/mnmlist/article/details/44569177