Debo decir que la inserción de un elemento de la lista debería devolver un tipo booleano (int), no un puntero a un nodo.
En pseudocódigo sería (depende del tipo de lista y la inserción):
función insertar(lista, elemento, [posición]) -> lista, boolean
[posición], entre corchetes porque es opcional.
Siendo lista el puntero que apunta al primer nodo de la lista (en una lista simplemente enlazada)
Siendo elemento el elemento albergado en cada nodo de la lista
La función devuelve la lista modificada (si fue posible) y un valor booleano(int) para saber si se pudo realizar la inserción
Nota*: No podemos insertar un nuevo elemento cuando no hay memoria disponible.
Si ( punteroANuevoNodo = NULO) entonces Error de memoria - No se puede insertar