root двоичного дерева, все значения в котором различны, и число start — значение одной из вершин.
Листом называется вершина без детей. Расстояние между вершинами — число рёбер на пути между ними, причём по рёбрам можно идти как вниз, так и вверх к родителю.
Найдите лист, ближайший к вершине со значением start, и верните его значение. Если start сам лист, ответ — start.
Тесты подобраны так, что ближайший лист единственный.root=tree_node([10, 20, 30, None, None, 40, 50, 60]), start=40 → 60
Под вершиной 40 лист 60 на расстоянии 1. Лист 50 — через родителя 30, это 2 ребра, лист 20 — ещё дальше.
root=tree_node([3, 8, None, 6, None, 1]), start=8 → 1
Корень 3 имеет ребёнка, значит он не лист. Единственный лист — 1, до него 2 ребра вниз.
root=tree_node([5]), start=5 → 5
Дерево из одной вершины: она сама и есть лист, расстояние 0.
Node.val ≤ 1000start есть в деревеroot=tree_node([10, 20, 30, None, None, 40, 50, 60]), start=40
60
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 74 теста на сервере, включая скрытые.