Поиск пути в н-арном дереве

Столкнулся с проблемой поиска длиннейшего от корня пути проходящего только по нечетным вершинам. Не могу понять почему программа падает и что не так в моем алгоритме.

void Path(NTree* root)
{
    int temppath = 0;
    for (int i = 0; i <root->N ; ++i)
    {
        if (root[i].data % 2 != 0)
        {
            temppath++;
            if (temppath > path) path = temppath;
            Path(root[i].Child[i]);
        }
    }
}

Ответы (1 шт):

Автор решения: MBo

Ну и кому нужна локальная переменная, в которой считается количество нечетных детей? Она помрёт без пользы.

Для нахождения длины макс. пути можно использовать что-то вроде этого:

int Path(NTree* root)
{
    int temppath = 0;
    for (int i = 0; i <root->N ; ++i)
        if (root[i].data % 2)
            temppath = max(temppath, Path(root[i].Child[i]));
    return 1 + temppath;
}
→ Ссылка