Cómo liberar memoria de una estructura con punteros a otra estructura

Tengo dos estructuras

struct SimpleXY
{
    double x;
    double y;

};

    struct SimpleXyLink
    {
            int num_xy;
            SimpleXY *simpleXyList;
    };

Me pregunto cuál es la forma correcta de liberar la memoriaSimplyXyLink? Actualmente estoy usando

void Free(SimpleXyLink *myList)
{

    free(myList->simpleXyList);
}

Pero creo que esto está mal porque no libera la memoria dentro del elemento desimpleXyList.

Respuestas a la pregunta(3)

Su respuesta a la pregunta