C++ Class - how to go inside a sub-class in destructor

Here is a class definition:

class Person {
private:
    char* name;
    int numChildren;
    Person** childrenList;
public:
    Person(char* name);
    ~Person();
}

In the Person::Person() constructor, it will set up the name of the person based on the constructor parameter, and then create Person object for each child, and each child may have other children. And let’s say for one case, after I run this: Person* me = new Person("Alex");, the following structure will be created:


ie if me is created, me's children will also be recursively created.

But I have a trouble in the Person::~Person() destructor. In the destructor it should be recursively delete all dynamic objects including name and every child. Here is my attempt:

Person::~Person() {
    for (int i = 0; i < numChildren; i++) {
        // go inside each child
    }
    delete[] this->name;
    delete[] childrenList;
}

But I don’t know how to go inside each child, and the destructor has no parameter.

Could anyone give me some hint? Thanks!

Person::~Person() {
    for (int i = 0; i < numChildren; I++) {
        delete childrenList[I];
    }
    delete[] this->name;
    delete[] childrenList;
}