Использование рекурсивной структуры данных
Практически невозможно итеративно пройти по рекурсивной структуре данных, например дереву с указателями - это из-за того, что объекты "скрывают"«их базовые элементы данных.
Использование другой структуры данных
Все деревья могут быть сохранены / реализованы как линейные структуры данных массива, где индексы могут быть рассчитаны с использованием экспоненциальной математики:
Например, дерево [0, 1, 2, 3, null, 4, null] будет описывать дерево с 0 в корне, где 0 имеет прямые дочерние элементы 1 и 2. А затем 1 оставил дочерний элемент "3", а 2 оставили дочерний элемент" 4 ".
Таким образом, если вы храните дерево таким образом, количество элементов, естественно, равно количеству ненулевых элементов в массиве.
Проще говоря: храните дерево в линейной структуре, и вы можете узнать длину в любой момент времени, не прибегая к каким-либо причудливым алгоритмам.