• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

연결리스트 관련 질문

23.02.03 20:43 작성 23.02.03 20:43 수정 조회수 254

0

 

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

이동근님의 프로필

이동근

질문자

2023.02.03

빠른 답변 감사합니다. 👍

그럼 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을 가리키게 되는 것입니다.

이동근님의 프로필

이동근

질문자

2023.02.03

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

이해했습니다!

감사합니다.

0

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

A - B - C

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

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

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

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