diff --git a/du4/a_train.c b/du4/a_train.c index 352788b..5709570 100644 --- a/du4/a_train.c +++ b/du4/a_train.c @@ -60,20 +60,17 @@ struct car* clear_train(struct car* first, const char* target) { free(temp); return first; + } + while(first!= NULL && strcmp(first->value, target)){ + struct car* targetNode = first; + first = first->next; + free(targetNode); + } struct car* prev= first; struct car* temp = first->next; while (prev && temp) - { if (strcmp(prev->value, target) == 0) - { struct car* targetNode =prev; - prev = temp; - temp = temp->next; - free(targetNode); - - - /* code */ - } - + { if(strcmp(temp->value, target) == 0){ struct car* targetNode = temp; prev->next = temp->next;