Написание итератора для двоичного дерева без левых/правых/родительских атрибутов

#iterator

Вопрос:

Что мне нужно сделать, так это написать класс итератора с помощью следующего метода, который выполняет итерацию по двоичному дереву, обходя его. Проблема в том, что у моих узлов нет ни левого, ни правого, ни родительского атрибута, только список, содержащий узлы-преемники. Я думал об использовании стека, но не совсем уверен, как это сделать.