Java GC не ведут себя так, как вы описываете. Точнее сказать, что они начинаются с базового набора объектов, часто называемых «GC-корнями», и собирают любой объект, который не может быть достигнут из корня. Корни GC включают такие вещи, как:
Итак, в вашем случае, как только локальные переменные a, b и c выйдут из области действия в конце вашего метода, больше нет корней GC, которые прямо или косвенно содержат ссылку на любой из ваши три узла, и они будут иметь право на сбор мусора.
Ссылка TofuBeer имеет более подробную информацию, если вы этого хотите.