Ctrl K

Дерево-зеркало

Лёгкая
Дан корень root двоичного дерева. Проверьте, совпадает ли дерево со своим зеркальным отражением относительно вертикальной оси, проходящей через корень. Иначе говоря, левое поддерево корня должно быть зеркальной копией правого: на симметричных местах стоят вершины с одинаковыми значениями, а там, где с одной стороны вершины нет, её нет и с другой. Верните True, если дерево симметрично, и False в противном случае. Попробуйте решить задачу и рекурсивно, и без рекурсии.
Пример 1
root=tree_node([7, 5, 5, None, 8, 8]) → True

У левой пятёрки только правый ребёнок 8, у правой — только левый ребёнок 8. В зеркале они совпадают.

Пример 2
root=tree_node([7, 5, 5, 8, None, 8]) → False

Обе восьмёрки — левые дети, поэтому в зеркале левая окажется справа и не совпадёт с пустым местом.

Пример 3
root=tree_node([4]) → True

Дерево из одной вершины симметрично.

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

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