Das ganze Konzept ist falsch.
Du kannst nicht mehreren Knoten dasselbe Objekt zuweisen.
Baue für jeden Knotentype eine eigene Klasse, welche du von einer abstrakten Klasse ableitest. Die Abstrakte Klasse stellt die einheitliche Schnittstelle für bspw. den NodeText dar.
Speicher die Objekte in einer eigenen Liste und gib diese separat frei, dann brauchst du auch bei OnFreeNode nix zu machen (onFreeNode wird nämlich nicht für jeden Konten immer aufgerufen (siehe MAN))
Edit:
Hier ist ein Besipiel (Beitrag #4).
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.