У меня возникла следующая идея: запустить поиск в глубину, хранить путь от корня до нашей вершины. Если мы в какой-то момент пришли в вершину, в которой мы уже побывали, и при этом мы пришли не из неё, то мы нашли цикл, помечаем соотв. суффикс пути как цикл.