inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

연결리스트 - 구현

ReferenceError: currentNode is not defined오류가 납니다ㅠㅠ

해결된 질문

516

뇽뇽

작성한 질문수 3

1

코드가 중간에 잘못된건지 선생님이 주신 자료를 다운받아 복붙을 해보았는데도 오류가 납니다ㅠㅠ 무엇이 문제인지 봐주시면 감사하겠습니다ㅠㅠㅠ

알고리즘

답변 2

0

뇽뇽

해결되었습니다! 너무 감사합니다ㅠㅠ

0

감자

안녕하세요 남가형님!
코드를 살펴봤는데 놓치신게 있어 보입니다.

에러 메시지를 보면

TypeError: Cannot read properties of null (reading 'next')
at LinkedList.insertAt (file:///C:/dev/LinkedList.mjs:48:35)
at file:///C:/dev/test.mjs:25:6

로 test.mjs 파일의 25번 줄에서 문제가 발생했다는 것을 알 수 있습니다.

test.mjs 파일의 25번 줄은

21 console.log("***** insertAt() 다섯 벗 호출 *****")
22 // 3.0부터 4까지 5개의 데이터 삽입
23 list.insertAt(0,0);
24 list.insertAt(1,1);
25 list.insertAt(2,2);

위와 같은 코드로 insertAt를 두 번 호출하고 난 뒤 에러가 발생했습니다.
두 번째까지 잘 동작하다가 왜 오류가 났을까요?

첫 번째 실행을 했을 때는 38번 줄의 if문이 참이 되므로

38 if(index == 0){
39     newNode.next = this.head;
40     this.head = newNode;
41  }

빈 리스트에 삽입이 이루어집니다.

이어서 두 번째 insertAt() 함수가 호출되면 41번 줄이 실행되는데 여기서 문제가 발견됩니다.

41 }else{
42     let currentNode = this.head;
43
44     for(let i = 0; i < index-1; i++){
45         currentNode = currentNode.next;
46     }
47     newNode = currentNode.next; // 에러의 원인이 되는 코드!!
48     cyrrentNode.next = newNode;
49 }

47번 라인에서 newNode의 next를 설정해주는 것이 아니라 newNode를 currentNode의 next로 설정해주셨습니다.

따라서 연결이 제대로 이루어지지 않아서 다음 insertAt() 함수를 호출했을 때 null을 참조했다는 에러가 발생한 것입니다.

47번 라인의 코드를 newNode.next = currentNode.next;로 수정해주시면 잘 동작할겁니다!

궁금증이 해결되셨나요? 😊

연결리스트 삽입삭제 O(1) 아닌가요?

0

20

2

큐의 마지막 데이터가 head에 위치해야 하는 이유가 궁금합니다.

0

76

2

이중연결 리스트 데이터 삭제시 질문이 있습니다.

1

67

2

자바스크립트 배열은 동적이 아닌가요?

1

89

2

자바스크립트 배열

0

80

2

코테에서 링크리스트 자료구조를 사용해야 하면, 이번 강의에서 구현한 메서드들도 모두 직접 구현하면 되나요?/

0

157

2

공부 방식 질문 드립니다.

1

120

2

메모이제이션과 타뷸레이션 관련해서 질문드립니다.

1

171

2

병합정렬에서 질문이 있습니다.

2

143

1

병합정렬 질문 있습니다.

1

140

5

데이터 삽입, 삭제 함수 오류 범위 설정

0

159

2

해시 테이블에서 질문이 잇습니다.

2

130

2

시간복잡도 계산 시 1회 연산당 연산량은 왜 고려하지 않는 건가요?

1

149

2

터미널 설정

0

116

2

2:13분 관련 질문입니다

0

94

1

8:47초경부터 9:00초까지 질문입니다.

1

137

2

tail을 삭제하는 경우에 관련해서 질문이 있습니다.

0

109

1

2:36초 head 위치가?

1

114

2

환경구축강의 중 터미널 파일 실행오류

0

166

2

4:58 이중for문 질문있습니다.

0

107

1

hanoi함수 처음 호출에 대해서 여쭤봅니다.

1

135

2

해쉬테이블 데이터 관련해서 질문있습니다.

0

152

2

자바스크립트 Map과 어떤 차이가 있나요??

0

206

2

질문이있습니다.

0

107

1