diff --git a/cv9/snake.c b/cv9/snake.c index fa703f5..d28bcaa 100644 --- a/cv9/snake.c +++ b/cv9/snake.c @@ -21,7 +21,30 @@ struct snake* add_snake(struct snake* snake,int x,int y){ } struct snake* remove_snake(struct snake* snake){ - return NULL; + // Ak je zoznam hada prázdny, vrátiť NULL + if (snake == NULL) { + return NULL; + } + + // Ak máme iba jeden prvok, uvoľniť ho a vrátiť NULL + if (snake->next == NULL) { + free(snake); + return NULL; + } + + // Prechádzanie zoznamu hada, kým nenájdeme predposledný prvok + struct snake* current = snake; + while (current->next->next != NULL) { + current = current->next; + } + + // Uvoľnenie posledného prvku a nastavenie nového posledného prvku na NULL + free(current->next); + current->next = NULL; + + // Vrátenie začiatku zoznamu hada + return snake; + //return NULL; } void free_snake(struct snake* sn){