Задать вопрос
@Sneiksus

Как удалить обьект из дерева с помощью списка?

Есть узел бинарного дерева

class Node{
    public int val;
    public Node left;
    public Node right;
}


при создании каждого нового узла он также добавляется в список

List<Node> l = new List<Node>();
Node n = new Node();
l.add(n);


и теперь мне нужно при удалении узла из списка с помощью removeAt(), чтобы удаленный узел также удалился из других узлов которые содержат ссылку на него в своих left right свойствах(Например чтобы после удаления там был null). Как это можно сделать на c#?
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Пригласить эксперта
Ответы на вопрос 2
yarosroman
@yarosroman Куратор тега C#
C# the best
Заведите ещё свойство Parent на родительский узел. Тогда при удалении, можно обратиться к родительской и удалить узел из ее свойств, чтобы не обходить дерево.
Ответ написан
Комментировать
BasiC2k
@BasiC2k
.NET developer (open to job offers)
Нужно использовать рекурсивную функцию.
На вход подаётся нода, далее - идёт проверка, если у неё есть дочерние ноды, то идёт новый вызов этой функции и т.д.
К конце кода, когда обработаны (удалены) все дочерние ноды - идёт удаление поданной на вход ноды.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы