28:40
prev->next = curr->next;
이 코드줄 이후로 prev 노드 리스트가 4->2->1로 변경되서 3이 빠진건 이해 됬는데
curr->next = head;
여기서 head가 가리키고 있는 노드 리스트가 왜 3이 빠진걸까요?
저는 curr->next = head; 실행 이후 시점에서 아래처럼 해석해서 답이 354321 나왔습니다 ㅠ.
prev 노드 리스트: 4->2->1
curr 노드 리스트: 3->5->4->3->2->1
prev,curr,head 포인터들이 모두 다른 구조체 리스트를 가리키고 있다고 생각하면서 풀었는데 이게 잘못된걸까요..?
Câu trả lời 2
0
안녕하세요, head가 직접 3을 가리키는 것이 아니라 줄줄이 가리키고 있었는데
중간에 있던 부분을 생략하고 3이 가리키고 있던 것을 이전 노드가 가리키라고 변경했기 때문에 그렇습니다.
한글로는 조금 어려워서 그림을 그려보자면
head -> 5
5 -> 4
4 -> 3
3 -> 2
prev->next = curr->next; 이렇게 하면
4 -> 3이 끊기고 4 -> 2가 됩니다.
말씀하신 대로 이 때 3이 끊긴 것이고요.
그 다음 질문 주신 curr -> next = head;는
이 시점에서 curr은 3, head 5이기 때문에
3의 next = 5가 되어서
3 -> 5 -> 4 -> 2 -> 1 요렇게 됩니다.
3이 빠진 것은 그 위에서 3을 가리키고 있는 것을 빼고, 그 다음 것을 가리키라고 변경했기 때문입니다.
0
안녕하세요, 인프런 AI 인턴입니다. polaris2024님.
질문하신 내용은 링크드 리스트에서의 노드 재배치와 포인터 조작에 관련된 사항으로 보입니다. 이 문제는 포인터들을 잘 이해하고, 리스트 조작의 과정에서의 포인터 재배열을 명확히 이해해야 합니다.
설명
prev->next = curr->next;이 코드 줄은curr노드를 리스트에서 제거하는 역할을 합니다. 4에서 3을 건너뛰고 2로 바로 연결합니다.curr->next = head;이 줄은 리스트의 맨 앞에curr노드를 추가하는 것입니다. 즉,curr노드(여기서는 3) 다음에head노드를 설정하여 리스트의 가장 앞에curr노드를 두는 것입니다.
이 과정에서의 핵심은 curr->next = head; 가 실행된 이후 curr 노드가 현재 head의 위치에 앞서게 되어 head를 포함한 전체 리스트의 맨 앞에 삽입된다는 것입니다.
그래서 최종 리스트는 먼저 curr인 노드가 머리로 오고, 그 뒤에 이전의 head 노드부터 나머지 노드들이 차례로 이어지게 됩니다.
포인터 이해의 핵심
prev,curr,head는 모두 동일한 리스트 내의 노드들입니다. 각각 다른 리스트를 가리키고 있지 않습니다.
curr가 리스트의 맨 앞으로 이동하고,head가curr의 다음을 가리키게 되는 점이 중요합니다.
기존에 유사한 질문들이 있습니다. 다음 링크들을 통해 추가적인 설명을 참고하시면 이해에 더 좋을 것 같습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
26년 1회 실기 해설 강의
0
33
2
53번 4-1 자료 오류 있는 것 같습니다.
0
63
2
7번문제
0
49
2
C언어 변형문제 9번문제 Pdf 수정요청
0
39
2
메서드 오버드라드
0
41
2
실수
0
41
1
공부 우선순위 우선강의 알려주세요
0
75
1
생성자 호출순서 강의 10번 문제 30분대 질문입니다
0
41
2
25년 2회 기출 5:40 질문입니다.
0
33
2
모의고사1회 3번 파이썬문제
0
65
2
C언어 출제변형 6번 문제
0
43
2
c언어 출제변형 강의 질문
0
24
2
C : 언어 배열과 문자열 수업자료
0
23
2
파이썬 리스트, 딕셔너리 질문
0
36
2
모의고사 관련 질문 건
1
62
3
자료 내용 오류
0
57
2
정적 변수, 정적 메서드(static) v2
0
43
2
v1.2 와 v0.91 PDF
0
95
1
업캐스팅 (부모형태, 자식생성자)
0
45
2
정보처리산업기사 준비중입니다.
0
68
2
실기 D -6
0
100
2
(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다
0
51
3
업캐스팅 문제 풀면 업캐스팅이 상속과 문제풀 때 어떻게 해석해야할지 모르겠습니다.
0
54
2
강의파일 통합본
0
75
2

