Как удалить обьект из дерева с помощью списка?
Заведите ещё свойство Parent на родительский узел. Тогда при удалении, можно обратиться к родительской и удалить узел из ее свойств, чтобы не обходить дерево.
Нужно использовать рекурсивную функцию.
На вход подаётся нода, далее - идёт проверка, если у неё есть дочерние ноды, то идёт новый вызов этой функции и т.д.
К конце кода, когда обработаны (удалены) все дочерние ноды - идёт удаление поданной на вход ноды.