Comprender typedef con struct [duplicate]

Esta pregunta ya tiene una respuesta aquí:

typedef struct vs struct definiciones [duplicado] 12 respuestas

Me está costando entender esta muestra de código:

typedef struct node
{
        int data;
        struct node * next;
} node;

typedef node * nodepointer;

Entonces, estamos construyendo el nodo de estructura usando typedef ... Supongo que estamos haciendo esto para inicializar la estructura sin que sea necesaria la palabra clave "struct".

Quiero preguntar por qué en la definición de estructura usamos el nombre "nodo"dos veces (Al inicio y al final).

En segundo lugar quétypedef node * nodepointer; puntos a. ¿Es necesario usar typedef en este caso? Es esta expresiónnode * nodepointer; ¿no es igual?

Respuestas a la pregunta(6)

Su respuesta a la pregunta