Ctrl K

Сколько шагов между ключами

Средняя
Дан корень root двоичного дерева, все значения вершин в нём разные. Даны также два значения first и second, оба есть в дереве. Верните расстояние между вершинами с этими значениями — число рёбер на пути от одной до другой. Ходить по рёбрам можно в обе стороны, и вверх, и вниз. Если first и second совпадают, расстояние равно 0.
Пример 1
root=tree_node([10, 4, 15, 2, 7, None, 20]), first=7, second=20 → 4

Путь 7 → 4 → 10 → 15 → 20 проходит по четырём рёбрам.

Пример 2
root=tree_node([10, 4, 15, 2, 7, None, 20]), first=4, second=2 → 1

2 — ребёнок 4, между ними одно ребро.

Пример 3
root=tree_node([8, 3]), first=3, second=3 → 0

От вершины до неё самой 0 рёбер.

Ограничения
  • 1 ≤ число вершин ≤ 10⁴
  • 0 ≤ Node.val ≤ 10⁹, все значения различны
  • first и second есть в дереве
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДерево по столбцам СредняяПоддерево над нижним рядом СредняяГде сходятся самые глубокие листья СредняяСлух по дереву СредняяСумма двоюродных в дереве Средняя
загружаем Python…
Вход
root=tree_node([10, 4, 15, 2, 7, None, 20]), first=7, second=20
Ожидается
4

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 33 теста на сервере, включая скрытые.