leetcode每日一题——合并链表(hard)
import java.util.PriorityQueue;
public class 合并k链表 {
public static void main(String[] args) {
ListNode A = new ListNode(1);
A.next = new ListNode(2);
A.next.next = new ListNode(4);
ListNode B = new ListNode(1);
B.next = new ListNode(3);
B.next.next = new ListNode(4);
ListNode[] lists= {A,B};
System.out.println(mergeKLists(lists));
System.out.println(mergeKLists2(lists));
}
public static ListNode mergeKLists2(ListNode[] lists) {
if(lists.length==0||lists==null) return null;
PriorityQueue<ListNode> queue=new PriorityQueue<>(lists.length);
ListNode dummy=new ListNode(0);
ListNode cur=dummy;
for(ListNode l:lists) {
if (l!=null) {
queue.add(l);
}
while (queue.isEmpty()!=true) {
cur.next=queue.poll();
cur=cur.next;
if (cur.next!=null) {
queue.add(cur.next);
}
}
}
return dummy.next;
}
}
import java.util.PriorityQueue;
public class 合并k链表 {
public static void main(String[] args) {
ListNode A = new ListNode(1);
A.next = new ListNode(2);
A.next.next = new ListNode(4);
ListNode B = new ListNode(1);
B.next = new ListNode(3);
B.next.next = new ListNode(4);
ListNode[] lists= {A,B};
System.out.println(mergeKLists(lists));
System.out.println(mergeKLists2(lists));
}
public static ListNode mergeKLists2(ListNode[] lists) {
if(lists.length==0||lists==null) return null;
PriorityQueue<ListNode> queue=new PriorityQueue<>(lists.length);
ListNode dummy=new ListNode(0);
ListNode cur=dummy;
for(ListNode l:lists) {
if (l!=null) {
queue.add(l);
}
while (queue.isEmpty()!=true) {
cur.next=queue.poll();
cur=cur.next;
if (cur.next!=null) {
queue.add(cur.next);
}
}
}
return dummy.next;
}
}
全部评论
有点问题,需要重写compare方法
相关推荐
05-06 18:21
南京理工大学 golang 点赞 评论 收藏
分享
点赞 评论 收藏
分享