import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pHead1 ListNode类 * @param pHead2 ListNode类 * @return ListNode类 */ public ListNode Merge (ListNode pHead1, ListNode pHead2) { // write code here PriorityQueue<Integer> queue=new PriorityQueue<>(); while(pHead1!=null) { queue.add(pHead1.val); pHead1=pHead1.next; } while(pHead2!=null) { queue.add(pHead2.val); pHead2=pHead2.next; } if(queue.isEmpty())return null; ListNode dummyListNode=new ListNode(queue.poll()); ListNode currListNode=dummyListNode; while(!queue.isEmpty()) { currListNode.next=new ListNode(queue.poll()); currListNode=currListNode.next; } return dummyListNode; } }
这一题天生为优先队列打造,用起来非常爽