Buenas, he estado haciendo un ejercicio sobre listas enlazadas, cuyo enunciado es: Realizar un módulo que, dada una lista enlazada y un entero n, elimine los n primeros nodos.
La definición de tipos para una lista enlazada es la siguiente:
typedef struct nodo{
int dato;
nodo* suc;
};
typedef nodo* puntero;
El módulo que he realizado es el siguiente:
void eliminarNodos (nodo &cab, int n){
puntero *p=cab;
int cantidadNodos
if (p==NULL){
cantidadNodos=0;
}else{
cantidadNodos=1;
}
while (p!=NULL && cantidad<=n){
p-> suc;
resultado++;
}
if (resultado<=n){
cab=NULL;
}else{
cab=p->suc;
delete (p)
}
}
Lo que pretendo es contar el numero de nodos con el bucle while, y si hay menos nodos de los que hay que eliminar, o la lista esta vacía, directamente eliminarla. En caso de que haya suficientes nodos para borrar, como con el bucle while se ha situado p ->
¿Lo he hecho bien? Gracias por su atención.