들어가기 전에
연결 리스트의 첫 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 |