해결된 질문
작성
·
335
1
안녕하세요,
doublylinkedlist 에서 insertAt 수정 중에
if(newNode.next == null){ //새로 삽입한 노드가 마지막 노드라면
this.tail = newNode;
}
이 부분은 index == this.count 일 때 데이터를 삽입하는 경우에만 해당되는 것 같은데,
else if문 밖으로 빼서 공통적으로 처리해주는 이유가 궁금합니다.
감사합니다!
답변 1
1
안녕하세요 김예서님!
해당 부분에서 else if문 밖으로 빼는 이유가 충분히 궁금할 수 있다고 생각합니다.
대부분 경우에서는 index == this.count로 마지막에 삽입된 경우에서 동작하는 것이 맞지만 딱 하나의 경우를 더 처리해줘야합니다.
바로 0번 인덱스에 삽입할 때인데요. 0번 인덱스에 삽입하는 경우라도 다 그렇지는 않고 빈 연결리스트에 최초로 0번 인덱스에 삽입하는 경우 newNode를 head로 설정해줘야하는 동시에 tail로 만들어줘야합니다.
따라서 해당 로직을 if문과 else if문에 둘 다 넣어줘야하는데 코드를 줄이기 위해서 밖으로 빼서 하나의 경우로 처리해준 것입니다.
궁금증이 해결되셨나요? 😄