Компилятору (Java 8) сообщается, что в следующем коде нет подходящего конструктора:
PriorityQueue<ListNode> heap = new PriorityQueue((ListNode n1, ListNode n2) -> n1.val - n2.val)
Однако, если создать Comparator заранее и затем передать его в PriorityQueue, то
Comparator<ListNode> c = (ListNode n1, ListNode n2) -> n1.val - n2.val;
PriorityQueue<ListNode> heap = new PriorityQueue(c);
Интересно, почему первый подход не удался? Это потому, что компилятор не может вывести тип Comparator из лямбда-выражения?