카테고리 없음

peek 메소드

도전하는일반인 2021. 10. 13. 18:22

들어가기 전에

연결 리스트의 특정 node를 살펴보는 peek 메소드에 대해 알아보도록 하겠습니다.

 

학습 목표

peek 메소드를 이해하고 peekFirst와 peekLast 메소드를 만드는 방법을 이해할 수 있습니다.

 

핵심 단어

  • peek 메소드
  • peekFirst, peekLast

peek 메소드

 

peek 메소드는 하나의 요소를 살펴보기 위해 쓰는 메소드입니다. 추가, 제거하는 것이 아니라 그 요소의 내용을 읽는 함수입니다.

 

peekFirst는 아래와 같이 구현할 수 있습니다. 리스트가 비어있으면 NullPointerException 에러가 발생하기 때문에 따로 처리해줍니다.

같은 방식으로 하여, peekLast는 아래와 같이 구현할 수 있습니다. 임시 포인터를 활용하여 시간 복잡도가  O(n)O(n) 인 peekLast 함수를 만들 수도 있습니다.

 


 

생각해보기


1) tmp가 임시 포인터라 할 때, while(tmp.next != null)과 while(tmp != null)의 차이점은 무엇인가요?

 

나의 생각:

 

1) tmp.next !=null은 마지막 노드를 가리키고 (removeLast, peekLast 메소드)

tmp!=null은 마지막을 지나쳐서 가리키게 된다. (contains, remove 메소드)

 

 

출처 : https://www.boostcourse.org/cs204/lecture/625946?isDesc=false 네이버커넥트재단