Ich versuche, Funktion zum Löschen von Knoten in doppelt verketteten Liste zu schreiben. Aber ich staple auf der ersten Bedingung, wo nodeToDelete auch Kopf ist. wenn ich diesen Code frei benutze (nodeToDelete) dont free nodeToDeleteBut nodeToDelete-> nextNode;kann nicht Knoten in doppelt verkettete Liste in C++ freigeben
Hilfe?
bearbeitet: mit Lösch nicht auch Screenshot sehen arbeiten ->https://s22.postimg.org/dff43kn9d/slide.jpg
bearbeiten
void deleteNode(node *&head, int value)
meinen Code beheben DANKE.
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;
}
}
Sie sollten wirklich werden mit 'new' und' delete' in C++, wenn Sie die manuelle Speicherzuweisung zu tun haben. 'malloc' und' free' funktionieren nicht mit nicht standardmäßigen Layout-Klassen in C++. – NathanOliver
Erfahren Sie, wie Sie einen Debugger verwenden und wie Sie Code Zeile für Zeile durchgehen. –
Oh Mann !! Danke !!! Ich benutze neu für die Speicherzuweisung. Sollte verwenden, löschen Sie kostenlos. – pZCZ