---
id: TASK-39
title: 'Разбор задачи: Symmetric Tree (Extra)'
status: Done
assignee:
  - '@assistant'
created_date: '2026-09-10 07:51'
updated_date: '2026-09-10 10:59'
labels: []
dependencies: []
references:
  - applications/yandex-codenv/algo-solutions/_template.md
modified_files:
  - applications/yandex-codenv/algo-solutions/extra/08-symmetric-tree.md
priority: low
type: task
ordinal: 39000
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
Файл: algo-solutions/extra/08-symmetric-tree.md. Easy.
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [x] #1 Файл создан со всеми секциями формата
<!-- AC:END -->

## Implementation Plan

<!-- SECTION:PLAN:BEGIN -->
1. Изучить шаблон _template.md и образцы (07-same-tree.md — ближайший аналог, тот же формат секций)
2. Создать applications/yandex-codenv/algo-solutions/extra/08-symmetric-tree.md для LeetCode #101 (Easy, Tree)
   — метаданные (title, difficulty, category, leetcode_id, revision_count, last_revision)
   — все секции: Условие, Ключевая идея, Оценка сложности, Решение (Ruby), Разбор на примере, Edge Cases, Типичные ошибки, Альтернативные подходы, Заметки после повторения
   — решение: рекурсивный DFS, сравнение левого поддерева с правым (зеркальность вместо равенства)
3. Проверить: файл создан, все секции формата на месте, Ruby-код корректен (мысленный прогон + ruby -c)
4. Закрыть задачу: критерий приёмки #1 (файл со всеми секциями формата)
<!-- SECTION:PLAN:END -->

## Implementation Notes

<!-- SECTION:NOTES:BEGIN -->
Создан файл applications/yandex-codenv/algo-solutions/extra/08-symmetric-tree.md (LeetCode #101, Easy, Tree (DFS)).

Формат сверен с _template.md и образцом 07-same-tree.md: все 9 секций + YAML-фронтматтер на месте (Условие, Ключевая идея, Оценка сложности, Решение (Ruby), Разбор на примере, Edge Cases, Типичные ошибки, Альтернативные подходы, Заметки после повторения).

Решение: рекурсивный DFS через is_mirror(root, root) — зеркальное сравнение дерева с самим собой (обход крест-накрест: left.left ↔ right.right, left.right ↔ right.left). Приём is_mirror(root, root) закрывает nil-корень без guard-ветки.

Верификация: ruby -e проверка 5 кейсов (симметричное [1,2,2,3,4,4,3]→true, несимметричное [1,2,2,null,3,null,3]→false, nil→true, [1]→true, [1,2]→false) — все passed. Первая версия кода падала на nil-корне (NoMethodError на root.left) — исправлено приёмом is_mirror(root, root).
<!-- SECTION:NOTES:END -->

## Final Summary

<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Создан файл applications/yandex-codenv/algo-solutions/extra/08-symmetric-tree.md для задачи Symmetric Tree (LeetCode #101, Easy, Tree (DFS)). Решение: рекурсивный DFS через is_mirror(root, root) — зеркальное сравнение дерева с самим собой, обход крест-накрест. Верификация: ruby -e проверка 5 кейсов (все passed). Все секции формата (_template.md) заполнены.
<!-- SECTION:FINAL_SUMMARY:END -->
