root двоичного дерева и число mark. Удалите из дерева все листья со значением mark.
После удаления листа его родитель может сам стать листом. Если у такого родителя тоже значение mark, удалите и его — и так далее, пока в дереве не останется ни одного листа со значением mark.
Верните корень получившегося дерева (или пустое дерево, если удалено всё).root=tree_node([4, 7, 9, 7, None, 7, 7]), mark=7 → [4, None, 9]
Сначала срезаются три листа со значением 7. После этого левый ребёнок корня (тоже 7) становится листом и тоже уходит. Вершина 9 осталась без детей, но её значение не 7, поэтому она остаётся.
root=tree_node([5, 5, None, 5]), mark=5 → None
Цепочка из пятёрок срезается снизу вверх целиком, включая корень, — остаётся пустое дерево.
root=tree_node([3, 8, 2, None, 6]), mark=8 → [3, 8, 2, None, 6]
Вершина 8 не лист — у неё есть ребёнок 6, поэтому ничего не удаляется.
root=tree_node([4, 7, 9, 7, None, 7, 7]), mark=7
[4, None, 9]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 32 теста на сервере, включая скрытые.