---
round: 1
ticket_no: 24
source_no: 26
slug: same-tree
topic: Tree
difficulty: Easy
leetcode_id: 100
attempted: true
score: 2
verdict: partial
reviewed_at: 2026-09-12
---

# Билет 24 — Same Tree

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

Даны два корня бинарных деревьев `p` и `q`. Нужно проверить, одинаковы ли они — совпадает ли структура и значения в соответствующих узлах.

```
Input:  p = [1,2,3], q = [1,2,3]        →  true
Input:  p = [1,2],   q = [1,null,2]     →  false
```

## Ответ

> Сравнение деревьев происходит так: мы сначала сравниваем их головы, а потом левую и правую части. Левая и правая часть у нас получается от рекурсивного сравнения тоже деревьев. Если у деревьев нету там левой части у обоих, ну значит, эту левую часть мы тут не сравниваем, с ней всё в порядке. Точнее, так: если дерево пустое, то оба дерева пустые, они равны. Если одно из них пустое, а второе нет, то они не равны. В общем, здесь акой условии. Просто мы рекурсивно сравниваем поддеревья дальше.

## Разбор

**Что верно:** рекурсивное сравнение корней и обоих поддеревьев; корректный разбор nil: оба nil — равны, один nil — не равны.

**Что упущено и ошибки:** не названа сложность O(n) / O(h); граничные случаи по существу разобраны.

**Эталонная идея:** return true if p.nil? && q.nil?; return false if p.nil? || q.nil?; p.val == q.val && same(p.left, q.left) && same(p.right, q.right).

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

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


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