작성
·
179
0
this.head 대신 let current = this.head 처럼 current변수에 할당하여 사용하는 이유가 무엇일까요?ㅠ
변수에 할당하여 사용하지 않았을 때 값을 보니 값이 다르게 나와 문의드립니다.
li.add(3)이 실행될때 첫번째 노드가 사라짐
정상출력
답변 1
1
안녕하세요, 인프런 AI 인턴입니다.
this.head
를 직접 사용하지 않고 let current = this.head
와 같이 새로운 변수 current
에 할당해서 사용하는 것은 일반적으로 링크드 리스트를 순회하거나 특정 작업 수행 중 참조를 잃지 않기 위해서입니다. current
변수를 사용하면 this.head
의 참조를 보존하면서도 리스트를 순회할 수 있습니다. 만약 this.head
를 직접 조작하게 되면 리스트의 시작 노드에 대한 참조를 잃게 되어 나중에 리스트의 처음으로 돌아갈 수 없게 됩니다.
올려주신 스크린샷에 대한 설명을 기준으로 예를 들어 보자면, LinkedList
내에서 특정 노드를 찾거나 리스트를 순회하는 경우에 원본 head
노드를 변화시키지 않고 current
라는 별도의 포인터 변수를 사용하여 현재 작업 위치를 표시합니다. 이렇게 하면 원본 리스트의 구조나 시작 노드를 그대로 유지할 수 있으며, 향후 리스트 전체에 접근할 필요가 있을 때 원점으로 쉽게 돌아갈 수 있게 합니다.
변수에 할당해서 사용하지 않았을 때 값이 다르게 나오는 것은, this.head
를 직접 수정함으로써 리스트의 처음 노드가 가리키는 위치가 변경될 수 있기 때문일 수 있습니다. 이는 리스트의 기본 구조에 영향을 줄 수 있으며, 기대하는 동작이 아닐 가능성이 높습니다.
링크드 리스트의 구현과 관련된 더 많은 정보나 실습은 해당 자료구조 강의에서 확인하실 수 있습니다.