Дык это не
автор |
пройти в цикле по узлам, удаляя каждый пройденный |
а просто удаление всех узлов сразу. Попытаюсь пояснить, что имел ввиду.
Пока в дереве есть узлы, делать:
- выделяем первый узел
- на основе данных его ключа запускаем процедуру(здесь не рассматривается)
- если процедура вернула True, то узел удаляем, т.о. следующий узел становится первым, выделяем его и опять запускаем процедуру обработки
- если процедура обработки очередного узла вернула False, то узел не удаляем, а выделяем следующий узел в дереве и опять запускаем процедуру обработки.............
Т.о. в результате дерево будет содержать только узлы, обработка которых закончилась с ошибкой.