Поддержание вашего собственного пула узлов ... если это то, что вы имеете в виду ... не поможет вообще. Если узлы станут доступными, сборщик мусора найдет их. Плохо реализованный пул объектов может остановить это, что усугубит проблему.
Я подозреваю, что ваша проблема в том, что вы пропускаете объекты. Если в дереве есть узлы, которые больше не нужны, вы сможете избавиться от них, назначив значение null соответствующему полю или элементу массива родительского узла. Предполагая, что ваш граф узлов действительно является деревом, этого должно быть достаточно для отключения узла и подузлов от основного дерева и (если он теперь недоступен) сделать его пригодным для сбора мусора.
Другая возможность состоит в том, что где-то в вашем коде есть утечка памяти другого типа.