※ removeFirst 메소드
- 보통 head = head.next를 하면 head가 다음 노드를 가리키고 첫 번째 노드가 제거된다. 하지만 다음과 같은 경계 조건에서 에러가 발생하기 때문에 코드를 추가할 필요가 있다.
조건1. 자료 구조가 비어있는 경우
- head가 null을 가리키는 경우인데, head가 head.next를 가리키면 NullPointerException 에러가 발생하게 되는데 이 상황에서는 아무것도 하지않고 null을 반환하면 된다.
조건2. 자료 구조에 단 하나의 요소가 들어있는 경우
- head 포인터, tail 포인터 모두 null을 가리키게 해야 한다.
이를 코드로 구현하면 다음과 같다
public E removefirst() {
//경계 조건1
if (head == null)
return null;
E tmp = head.data;
// 경계 조건 2
if (head == tail)
head = null;
tail = null;
// 그 외의 경우
else
head = head.next;
currentSize--;
}
'기타 > What I Learned' 카테고리의 다른 글
[TIL] 자료구조 - remove, find (0) | 2022.03.25 |
---|---|
[TIL] 자료구조 - removeLast 메소드 (0) | 2022.03.22 |
[TIL] 자료구조 - addLast 메소드 (0) | 2022.03.18 |
[TIL] 자료구조 - addFirst 메소드 (0) | 2022.03.17 |
[TIL] 자료구조 - 노드와 크기 (0) | 2022.03.16 |