inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

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
  • 코테 준비 같이 해요!
illhumored 댓글 1 좋아요 1 조회수 233

인기 태그

인프런 TOP Writers

주간 인기글