diff --git a/du4/a_train.c b/du4/a_train.c index c7970de..62ae2a8 100644 --- a/du4/a_train.c +++ b/du4/a_train.c @@ -31,11 +31,15 @@ void print_train(struct car* first) { } void cancel_train(struct car* first) { - if (first == NULL) return; - cancel_train(first->next); - free(first); + while (first) { + struct car* next = first->next; + first->next = NULL; // ochrana proti cyklom alebo neplatnému next + free(first); + first = next; + } } + struct car* clear_train(struct car* first, const char* name) { // Ak je zoznam prázdny