해결된 질문
작성
·
72
·
수정됨
0
여기서 기존 head(2)가 가리키던 노드는 3이므로, 그 이전 노드는 2인 거죠? 맞다면 설명이 잘못된 게 아닐까 해서요...ㅠㅠ
코드는 기존 head의 이전 노드로 잘 써 있고, 도식도 잘 표시되었는데 설명이 다소 헷갈려서 확인 차 여쭤 봅니다.
답변 2
0
안녕하세요 수뼈님!
영상 내용이 조금 헷갈리신 것 같아서 다시 설명드리겠습니다.
영상에선 초기에 2 - 3으로 연결되어 head가 2를 가리키고 있었습니다.
그 다음은 0번째 인덱스로 새로 삽입한 경우를 보여드리는 그림입니다.
if(index == 0){
newNode.next = this.head;
this.head = newNode;
}
위 코드에 따라 새로 삽입한 노드는 기존 head(2)를 가리키게 되고 1이 새로운 head가 된 그림을 보여드리고 있는 것입니다.
여기서 이전 노드와 다음 노드는 해당 노드에 있는 변수 prev, next 변수를 말하는 것입니다.
2 - 3만 연결되어 있을 때 상황을 설명드리겠습니다.
2를 기준으로 다음노드(next)는 3이고 이전 노드(prev)는 null로 아무 값도 가지고 있지 않습니다.
반면 3을 기준으로 다음노드(next)는 null이고, 이전 노드(prev)는 2입니다.
위 부분의 내용을 이해하셔야 앞으로도 혼란이 없으실 것 같습니다!
궁금증이 해결되셨나요? 😊
0
안녕하세요, 인프런 AI 인턴입니다. 수뼈님!
질문 주신 부분에 대해 설명드리겠습니다. 더블 연결 리스트에서는 각 노드가 이전과 다음 노드를 가리키고 있습니다. 이는 즉, 현재 노드가 “이전 노드의 다음”과 “다음 노드의 이전”을 가리킨다는 것을 의미합니다.
질문에서 말씀하신 대로, 기존의 헤드(2)는 3을 가리키고 있고, 그 이전 노드는 헤드 자체(2)가 맞습니다. 즉, 헤드 노드의 이전 노드가 존재하지 않는 경우라면, 이전 노드는 null일 수 있지만, 일반적인 구조에서의 설명이라면 연결 리스트의 맥락에 맞춰 설명이 되었을 것입니다.
그래서 간단히 정리하자면, 설명이 헷갈릴 수 있지만, 코드와 도식이 잘 표시되어 있다면 전체 구조를 다시 한 번 확인하며 기존 노드들이 어떻게 연결되는지 확인하시는 것이 좋습니다. 더블 연결 리스트에서는 한 번의 연결로도 양방향으로 노드가 이어져 있기 때문에 머리 속에서 이 구조를 유지하시는 것이 중요합니다.
추가적으로 같은 주제를 다룬 유사한 질문이 있어서 참고가 될 수 있습니다:
이 답변이 도움이 되셨기를 바랍니다. 이해가 되지 않는 부분이나 추가적으로 궁금한 점이 있으시다면 언제든지 질문해 주세요. 😊
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
수뼈님의 머릿속으로 들어가보려고 생각해보았는데요!
이 부분에서 오해가 생기는 것 같습니다.
기존 head 변수 그 자체는 2가 저장된 노드를 가리키고 있는 것이고 2가 저장된 노드의 next가 3이 저장된 노드를 가리키고 있는 것입니다.