Cómo hacer que esta declaración se entienda a un chico de 18 años

Suponiendo que el joven de 18 años no está familiarizado con el concepto de punteros, argumentos de función, prototipos de función y tipos de retorno de función.

struct node * Create_linkedlist (struct node *);

La declaración anterior es un prototipo de función. El prototipo se ve algo así:

returnType functionName (argumento);

El nombre de la función es Create_linkedlist.

La función toma una dirección como argumento, es decir, tenemos que pasar una dirección a la función y dado que las direcciones se almacenan en punteros, se usa un puntero como argumento.

Ahora, ¿qué tipo de puntero debería ser?

El tipo de puntero se decide de acuerdo con los datos cuya dirección va a contener el puntero. Aquí los datos son del tipo definido por el usuario: ‘ nodo de estructura’.

Después de crear el primer nodo, las funciones devuelven la dirección del nodo que acaba de crear. Por lo tanto, el tipo de retorno de la función es un puntero de estructura porque devolverá la dirección de un nodo que es de tipo – ‘ nodo de estructura’.

Ahora la segunda declaración:

struct node * Create_linkedlist (struct node *) {
Tu codigo aqui
}

Esta es la definición de la función o el cuerpo de la función.

Para más información sobre funciones y prototipos, lea esto:
opencbp.sourceforge.net/en_US.ISO8859-1/books/opencbook/func.prototypes.html

O simplemente haz una búsqueda en Google.