так, хорошо, еще раз
есть какое-то дерево
раз нам нужно определять для каждой ноды, были ли мы в подобной ноде, то у ноды должны быть какие-то айдишники (иначе для вычисления идентификатора придется все поддерево обходить, что может не проблема конечно)
значит при входе в ноду мы смотрим, есть ли айдишник в сете, и если есть, то не идем дальше в ветки, иначе идем
Все верно?