assignment from incompatible pointer type



No entiendo cual es el problema, trato de agregar un solo entero al final y
el compilador me avisa de ese error.
Tambien tengo una pregunta dentro de la funcion:

struct _nodo {
int dato;
struct nodo *sig;
};

typedef struct _nodo nodo;

/* ¿Cual es exactamente la diferencia entre **nodo y *nodo
Veo que muchos abajo del anterior typedef crean algo asi
typedef *nodo NODO; */


int esta_vacia(nodo *lista)
{
return (lista==NULL);
}

void insertar_dato(nodo **lista, int dato)
{
nodo *antes, *despues, *nuevo;
nuevo= (nodo*)malloc(sizeof(nodo));
nuevo->dato = dato;
if (esta_vacia(*lista))
*lista=nuevo;
else {
antes = *lista;
despues = antes->sig;
while (despues != NULL) {
antes = despues;
despues = despues->sig;
}
antes->sig = nuevo;
nuevo->sig = NULL;
}
}


.



Relevant Pages