---
round: 1
ticket_no: 18
source_no: 27
slug: symmetric-tree
topic: Tree
difficulty: Easy
leetcode_id: 101
attempted: true
score: 2
verdict: partial
reviewed_at: 2026-09-12
---

# Билет 18 — Symmetric Tree

## Условие (как предъявлено)

Дан корень бинарного дерева `root`. Нужно проверить, симметрично ли дерево относительно своего центра — то есть является ли левое поддерево зеркальным отражением правого.

```
Input:  root = [1,2,2,3,4,4,3]            →  true
Input:  root = [1,2,2,null,3,null,3]      →  false
```

## Ответ

> Здесь нужно написать, то есть симметрия означает, что его левое крыло является отражением правого крыла. Да, то есть, и дальше симметричная функция, рекурсивная функция. У нас получается, на входе есть у этого метода два дерева, и нужно определить, являются ли они друг другу отражением. Ну, во-первых, у них должен быть корень одинаковый; а дальше левое крыло должно быть зеркалом правого другого и правого первого, левого другого. То есть вот ещё вот такие функции. Ну и это рекурсия доходит. Пока там, например, у нас если в одном дереве остались только в одном поддереве есть дети, а в другом нету. Ну всё, значит они уже не являются зеркальными. Ну а если у нас остались только головы, да, то есть всё, мы на этом останавливаемся, значит, под деревьев уже не проверяем, их нет. Вот, соответственно, если головы не совпадают, они тоже уже не зеркала.

## Разбор

**Что верно:** сведение к зеркальному сравнению двух поддеревьев и обход крест-накрест (left.left против right.right, left.right против right.left); корректно обработаны пустые узлы: оба nil — зеркальны, один nil — нет.

**Что упущено и ошибки:** не названа сложность O(n) / O(h); не назван приём «сравнить корень сам с собой» — is_mirror(root, root), который закрывает пустое дерево без отдельного guard-условия.

**Эталонная идея:** is_mirror(l, r): true если оба nil; false если один nil; l.val == r.val && is_mirror(l.left, r.right) && is_mirror(l.right, r.left); вызов от (root, root).

**Сложность:** время O(n), память O(h)

**Критерии:** идея ✅ · структура данных ✅ · сложность ❌ · граничные случаи ✅


**Разбор задачи:** [`../../algo-solutions/02-extra/05-tree/27-symmetric-tree.md`](../../algo-solutions/02-extra/05-tree/27-symmetric-tree.md)
