Ich mach das immer so:
- alle Nodes durchlaufen
- wenn selektiert, dann herausfinden, welche Daten zugrunde liegen und diese Daten vernichten
- den Tree neu aufbauen
- den vorher gemerkten Treenode wieder fokussieren bzw wenn er gelöscht wurde, dessen nächsten Sibling oder den vorigen Sibling
Das halte ich für am saubersten.