JAVA/자료구조

removeFirst 메소드

도전하는일반인 2021. 10. 12. 13:48

들어가기 전에

연결 리스트의 첫 node를 제거하는 removeFirst 메소드에 대해 살펴보도록 하겠습니다.

 

학습 목표

removeFirst 메소드를 이해하고 경계 조건을 만족하는지 확인할 수 있습니다.

 

핵심 단어

  • removeFirst 메소드
  • 연결 리스트
  • 경계 조건

removeFirst 메소드

 

보통의 경우, head=head.next를 하면 head가 다음 노드를 가리키게 되고 첫 번째 노드가 제거됩니다. 하지만 다음과 같은 경계 조건에서 에러가 발생하므로 코드를 추가해야 합니다.

 

경계 조건 1. 자료 구조가 비어있는 경우
head가 null을 가리키는 경우입니다. 이 때, head가 head.next를 가리키게 하면 NullPointerException 에러가 발생하게 됩니다. 그래서 이 상황에서는 아무것도 하지 않고 null을 반환하면 됩니다.

 

경계 조건 2. 자료 구조에 단 하나의 요소가 들어있을 때
head 포인터, tail 포인터 모두 null을 가리키게 해야 합니다.

 

코드를 작성하면 다음과 같습니다.

}

 


 

생각해보기


1) tail 포인터의 단점은 무엇인가요?

 

나의 생각 : tail 포인터를 꼭 넣어야 하기 때문에 구현이 복잡해질 수 있다.

 

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

'JAVA > 자료구조' 카테고리의 다른 글

remove와 find  (0) 2021.10.13
removeLast 메소드  (0) 2021.10.13
addLast 메소드  (0) 2021.10.03
addFirst 메소드  (0) 2021.10.03
경계 조건  (0) 2021.10.02