/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode mergeKLists(ListNode[] lists) {
return merge(lists,0,lists.length-1);
}
ListNode merge(ListNode[] lists,int left,int right){
if(left==right){
return lists[left];
}
if(left>right){
return null;
}
int mid=(left+right)/2;
return mergetwo(merge(lists,left,mid),merge(lists,mid+1,right));
}
ListNode mergetwo(ListNode list1,ListNode list2){
if(list1==null||list2==null){
return list1!=null?list1:list2;
}
ListNode head=new ListNode(0);
ListNode tail=head,p1=list1,p2=list2;
while(p1!=null&&p2!=null){
if(p1.val<p2.val){
tail.next=p1;
p1=p1.next;
}else{
tail.next=p2;
p2=p2.next;
}
tail=tail.next;
}
tail.next=p1!=null?p1:p2;
return head.next;
}
}
2021-03-25(23. 合并K个升序链表)
最新推荐文章于 2023-02-25 11:24:51 发布