Почему в С++ появляется Segmentation fault?
head - указатель, который вы инициализируете 0. Потом вы пытаетесь обратиться к полю sizeOfChild по этому указателю, вот тут все и падает. Потому что поля нет, как нет и всего head - вы же под него память не выделяли.
конкретную причину ошибки в коде так и не уставновил
Да вот же она: Tree* head{0}; -- в head у тебя NULL.
А std::cin >> head->sizeOfChild пытается читать в поле объекта на который указывает head.