Ctrl K

Одна глубина, разные родители

Лёгкая
Дано двоичное дерево root, все значения в вершинах которого различны, и два разных значения a и b, которые точно встречаются в дереве. Корень находится на глубине 0, дети вершины глубины k — на глубине k + 1. Назовём две вершины двоюродными, если они лежат на одной глубине, но у них разные родители. Верните True, если вершины со значениями a и b двоюродные, иначе False.
Пример 1
root=tree_node([7, 3, 9, 5, None, None, 8]), a=5, b=8 → True

5 — ребёнок 3, а 8 — ребёнок 9. Обе вершины на глубине 2, родители разные — ответ True.

Пример 2
root=tree_node([7, 3, 9, 5, 6]), a=5, b=6 → False

5 и 6 на одной глубине, но у них общий родитель 3 — это братья, а не двоюродные.

Пример 3
root=tree_node([7, 3, 9, 5]), a=5, b=9 → False

5 лежит на глубине 2, а 9 — на глубине 1.

Ограничения
  • В дереве от 2 до 100 вершин
  • 1 ≤ Node.val ≤ 100, все значения различны
  • a ≠ b, оба значения есть в дереве
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДеревья-близнецы ЛёгкаяДерево-зеркало ЛёгкаяВысота дерева ЛёгкаяГлубина ближайшего листа ЛёгкаяПуть до листа с нужной суммой Лёгкая
загружаем Python…
Вход
root=tree_node([7, 3, 9, 5, None, None, 8]), a=5, b=8
Ожидается
True

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