Сделал такой же алгоритм у себя в скрипте и действительно вышел за пределы доп. памяти, подскажите, как лучше поступить теперь?
У меня есть мысль - получать только несколько уровней дерева, но опять же таки выходит, что сначала его нужно построить всё, а потом уже обрезать (