더블 링크드리스트에서 모든 노드 삭제하기
조회수 2031회
c언어 기반 doubly linked list에서 현재 지점부터 끝까지 모든 노드를 삭제하는 방법을 알고 싶습니다. 여기서 현재 지점이라고 쓴 의도는 getPrevItem(전 노드를 참조하는 연산?) 을 한 번 이상 사용해 plist->last가 누군가를 가리키게 되었다를 전제했기 때문입니다.
예를 들어 이런 것인데 그림이 잘 보이실 지 모르겠네요ㅠㅠ
제가 짠 코드는
void curRemoveItem(struct DB_LinkedList* plist) {
struct Node* delNode;
plist->current = plist->last->next;
delNode = plist->current;
while (plist->current->next != NULL) {
plist->current = plist->current->next;
free(delNode);
delNode = plist->current;
}
free(delNode);
plist->current = plist->last;
}
인데 아무래도 틀린 것 같아서요. 알려주시면 감사하겠습니다ㅠㅠ (current 는 현재 삭제할 노드를 가리킬 포인터에요)
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력