J'essaye d'écrire la fonction pour supprimer le noeud dans la liste double liée. Mais je m'empile à la première condition où nodeToDelete est aussi head. lorsque j'utilise ce code libre (nodeToDelete) ne libère pas nodeToDeleteBut nodeToDelete-> nextNode;ne peut pas libérer le noeud dans la liste double liée en C++
toute aide?
modifié: avec suppression DonT également des travaux voir capture d'écran ->https://s22.postimg.org/dff43kn9d/slide.jpg
modifier
void deleteNode(node *&head, int value)
fixer mon code MERCI.
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;
}
}
Vous devriez vraiment utiliser 'new' et' delete' en C++ si vous avez à faire l'allocation de mémoire manuelle. 'malloc' et' free' ne fonctionnent pas avec les types de classes de mise en page non standard en C++. – NathanOliver
Apprenez comment utiliser un débogueur et comment parcourir votre code ligne par ligne. –
Oh mec !! Je vous remercie !!! J'utilise nouveau pour l'allocation de mémoire. Devrait utiliser supprimer insted of free. – pZCZ