Deleting GameObjects

I am presented with a situation where I need to delete all object under a GameObject.

I am unsure whether

Destroy(parent)
parent =  new GameObject();

or

 for (int j = children - 1; j >= 0; j--) {
           GameObject.Destroy(parent.transform.GetChild(j).gameObject);
}

is more efficient. I think it all boils down to how Destroy is implemented. Does anyone know which is more efficient?

If you destroy a specific GameObject all of its children will be destroyed with it. You do not need to manually destroy individual children.

Destroy(gameObject);