您的位置:首页 > 其它

[leetcode]23 Merge k Sorted Lists

2015-01-13 21:20 495 查看

问题描述:

Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.

代码:

public ListNode mergeTwoLists(ListNode l1, ListNode l2) {  //java
if(l2 == null)
return l1;
if(l1 == null)
return l2;

ListNode tmp1 = l1;
ListNode tmp2 = l2;
ListNode head = new ListNode(0);
ListNode result = head;
while(tmp1 != null && tmp2 != null){
if(tmp1.val > tmp2.val){
ListNode node = new ListNode(tmp2.val);
result.next = node;
result = result.next;
tmp2 = tmp2.next;
}

else{
ListNode node = new ListNode(tmp1.val);
result.next = node;
result = result.next;
tmp1 = tmp1.next;
}
}

if(tmp2 == null)
result.next = tmp1;
else result.next = tmp2;

return head.next;

}
public ListNode mergeKLists(List<ListNode> lists) {
if(lists == null ||lists.size() == 0)
return null;
if(lists.size()==1) return lists.get(0);
return mergeTwoLists(mergeKLists(lists.subList(0,lists.size()/2)),mergeKLists(lists.subList(lists.size()/2,lists.size())));

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: