Код Senior Деревья обновлено

Ближайший общий предок

Условие

Найди ближайшего общего предка двух значений в двоичном дереве. Узел: { value, left, right }. Оба значения точно есть.

Что проверяют тесты

  • предок в разных ветках

  • один узел - предок другого

Как подойти

Рекурсия снизу вверх: каждый узел сообщает наверх, нашёл ли он что-то. Два непустых ответа из разных веток означают развилку. Случай «один является предком другого» закрывается ранним возвратом при совпадении значения.

Подсказки: 2
  1. Если искомые нашлись в разных поддеревьях, текущий узел и есть ответ.
  2. Если оба в одном - ответ там же, глубже.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме