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方法
相关推荐
点赞 评论 收藏
分享
2025-11-07 09:08
门头沟学院 Java
古月方源c:现在三方普遍都是网签,直接给你发送邀约,三天或七天后过期,不接受视为拒绝,这套说辞已经过时了,已经不是之前邮寄三方纸质文件的时代了 点赞 评论 收藏
分享
