Untitled

mail@pastecode.io avatar
unknown
c_cpp
a month ago
1.0 kB
1
Indexable
Never
// Online C compiler to run C program online
#include <stdio.h>

nodo_t* cancellaTesta(nodo_t *l)
{
    nodo_t *tmp;
    
    if(l != NULL)
    {
        tmp = l; //Salvo un puntatore alla testa attuale
        l = l->next; //Sposta la testa al nodo nuo
        free(tmp);
    }
}

nodo_t *cancellaCoda(nodo_t *l)
{
    nodo_t *tmp, *prec;
    
    if(l != NULL)
    {
        // Caso 1: La lista ha un solo elemento (l == coda)
        if (l->next == NULL)
        {
            free(l);
            l=NULL;
        }
        else
        {
            // Caso 2: La lista ha più di un elemento
            for(prec = l; prec->next->next != NULL; prec = prec->next;)
            
            //A questo punto, 'prec' è il penultimo nodo
            tmp = prec -> next; //tmp è l'ultimo nodo
            prec->next = NULL; //Stacca l'ultimo nodo dalla lista
            free(tmp);
        }
        return l;
    }
}

int main() {
    nodo_t *lista;
    
    lista = cancellaTesta(lista);
    
    
    return 0;
}
Leave a Comment