인프런 커뮤니티 질문&답변

이동근님의 프로필 이미지
이동근

작성한 질문수

그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)

연결리스트 - 구현

연결리스트 관련 질문

해결된 질문

작성

·

340

·

수정됨

1

 

let currentNode = this.head;

      for (let i = 0; i < index - 1; i++) {
        currentNode = currentNode.next;
      }
      newNode.next = currentNode.next;
      currentNode.next = newNode;
currentNode = currentNode.next 이 부분이 잘 이해가 안갑니다.

답변 2

0

이동근님의 프로필 이미지
이동근
질문자

빠른 답변 감사합니다. 👍

그럼 index가 3이면

index = 0 이면 currentNode = 1

index = 1 이면 currentNode = 2

index = 2 이면 currentNode = 3

최종적으로는 3을 가르키게 되는건가요?!

감자님의 프로필 이미지
감자
지식공유자

아닙니다.

let currentNode = this.head;

이 코드로 처음부터 1을 currentNode가 가리키고 있습니다.

만약 1,2,3 세 개의 원소가 있을 때 index 2로 설정했다면

for문의 index 0일때는

current = current.next

로 2를 가리키고

 

index 1일 땐 3을 가리킵니다.

for문 내 조건문에서 i < index - 1 번 반복하기 때문에 2번만 반복하고
최종적으로 3을 가리키게 되는 것입니다.

이동근님의 프로필 이미지
이동근
질문자

배열하고 헤깔린 것 같습니다!ㅜ

이해했습니다!

감사합니다.

0

감자님의 프로필 이미지
감자
지식공유자

현재노드를 현재노드가 가리키는 다음 노드로 이동하는 코드입니다.

A - B - C

이렇게 있는 연결리스트에서 currentNode가 A를 가리키고 있었다면

currentNode.next는 B를 가리키고 있는 상황입니다.

따라서 currentNode = currentNode.next를 하게되면 currentNode는 B를 가리키게됩니다.

이렇게되면 currentNode.next는 C를 가리키겠죠?

이동근님의 프로필 이미지
이동근

작성한 질문수

질문하기