usuwanie wartosci z listy

0

mam taki problem: jak usunąć wszystkie dane wartości z listy. stworzyłem juz cos takiego ale nie dziala za dobrze:

bool usuwa_wszystkie_d(Node* &head, DATA d){
      Node *bierzacy = head;
      while(head != NULL){      
                 if (bierzacy->dane==d){
                     DATA p = bierzacy->dane;
                     Node* t = bierzacy;
                     bierzacy = bierzacy->next;
                     delete t;
                 }
      while (head != NULL){
        cout << head->dane << ", ";
        head = head->next;
      }
       
    }
}
0

w obu warunkach w while powinieneś mieć bierzacy != NULL, przed tym drugim while zrobić: bierzacy = head; i wewnątrz drugiego while używaj bierzacy zamiast head.
Poza tym w pierwszym while linijka bierzacy = bierzacy->next; powinna być poza ifem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1