Merge k Sorted Lists 질문 드립니다.
미해결
정말 쉽게 풀어보는 코딩 테스트 top 기본 문제 (with 자바)
안녕하세요 강사님. 우선순위 큐 관련 질문 드립니다. 아래 코드와 같이 ListNode 배열 객체인 listNode 를 오름차순으로 설정한 우선순위 큐 에 셋팅(offer) 을 한 후 ListNode l1 = new ListNode ( 1 ); l1 . next = new ListNode ( 4 ); l1 . next . next = new ListNode ( 5 ); ListNode l2 = new ListNode ( 1 ); l2 . next = new ListNode ( 3 ); l2 . next . next = new ListNode ( 4 ); ListNode l3 = new ListNode ( 2 ); l3 . next = new ListNode ( 6 ); ListNode [] listNode = { l1 , l2 , l3 }; // ------------중간 생략 ----------------// PriorityQueue < ListNode > pq = new PriorityQueue < ListNode >( Comp ); for ( ListNode node : lists ) { if ( node != null ) { pq . offer ( node ); } // print(node); // System.out.println("1 node.val: " + node.val); // System.out.println("1 pq.peek(): " + pq.peek().val); } 왜 아래 코드와 같이 다시 offer 를 하는지 궁금합니다. 이미 위 에서 offer 를 했기 때문에 다시 offer 를 하면 중복된 값이 들어가는게 아닌가 하는 생각이 들어서요. while (! pq . isEmpty ()) { ListNode node = pq . poll (); p . next = node ; p = p . next ; if ( node . next != null ) { pq . offer ( node . next ); } //System.out.println("2 pq.peek(): " + pq.peek().val); } 답변 부탁드립니다. 감사합니다.
- MergekSortedLists
- java
- 코테 준비 같이 해요!





