I want to make a method that deletes elements called "archivo" from a list if cantLineas=0, the method deletes everything just right but I can't make it to put the pointer to NULL when the list has been deleted completely. Here is the code I've written:
struct archivo
{
    char * nombre;
    int cantLineas;
    archivo * sig;
};
void borrarArchivos(archivo * listaArchivos){
    archivo * ant=NULL;
    while(listaArchivos!=NULL){
        if(listaArchivos->cantLineas==0){
            if(ant!=NULL){
                ant->sig=listaArchivos->sig;
                delete listaArchivos;
                listaArchivos=ant->sig;
            }else{
                ant=listaArchivos;
                listaArchivos=listaArchivos->sig;
                delete ant;
                ant=NULL;
            } 
            if(ant==NULL && listaArchivos==NULL){
                listaArchivos=NULL;
            }
        }else{
            ant=listaArchivos;
            listaArchivos=listaArchivos->sig;
        }
    }
}
 
     
     
    