Я думаю, что ответ более тщательный, чем этот.Трудно сказать, что вы можете абсолютно гарантировать, если в этой ситуации не знаете остальной части вашего кода.Но полная паранойя была бы что-то вроде
if (root == NULL || root->children == NULL || root->children[0] == NULL
|| root->children[0]->children == NULL
|| root->children[0]->children[0] == NULL
|| root->children[0]->children[0]->children == NULL
|| root->children[0]->children[0]->children[0] == NULL)
Я почти уверен, что здесь есть какой-то недостаток дизайна ... Я думаю, что это и тот факт, что есть несколько прыжков, через которые можно пройти, ивещь, удерживающая предыдущий узел, это root
, что говорит о том, что вы не перемещаете свой фокус вниз, когда спускаетесь по дереву, вы просто кодируете все больше и больше шагов, чтобы добраться до элементов, на которые вы смотрите.
Редактировать: Подсказка: рекурсия.Обычно для домашней работы я бы предпочел не давать много примеров кода, но я оставляю код, который я вставил выше, как есть, потому что он в первую очередь демонстрирует провал вашего текущего подхода, а не является чем-то, что выдействительно можете использовать в вашем назначении.