이중 링크 목록에서 노드를 삭제하는 함수를 작성하려고합니다. 하지만 nodeToDelete도 머리 인 첫 번째 조건에 스택합니다. 그 코드를 무료로 사용할 때 (nodeToDelete) free nodeToDeleteBut nodeToDelete-> nextNode;C++의 이중 링크 목록에서 노드를 비울 수 없습니다.
어떤 도움이 필요합니까?
편집 ->https://s22.postimg.org/dff43kn9d/slide.jpg
편집
void deleteNode(node *&head, int value)
감사합니다 내 코드를 수정 삭제로도 스크린 샷을 볼 일을 해달라고.
void deleteNode(node *head, int value)
{
node* nodeToDelete = head;
while(nodeToDelete != NULL)
{
if(nodeToDelete->value == value)
{
if(nodeToDelete == head)
{
head = nodeToDelete->nextNode;
head->previousNode = NULL;
delete nodeToDelete;
return;
}
}
nodeToDelete = nodeToDelete->nextNode;
}
}
미안해 ... 정말 나쁜입니다. 'malloc'과'free'는 C++의 비표준 레이아웃 클래스 타입에서는 작동하지 않습니다. – NathanOliver
디버거 사용 방법과 한 줄씩 코드를 단계별로 실행하는 방법을 배우십시오. –
오, MAN !! 고맙습니다 !!! 나는 메모리 할당을 위해 새로운 것을 사용한다. 무료로 삭제 insted을 사용해야합니다. – pZCZ