Где применяется
1. Задача
У тебя две версии одного и того же. Например, конфиг, который ты сохранил, и конфиг, с которым сейчас работает сервер. Или прошлая отрисовка интерфейса и новая. Вопрос: точно ли они одинаковы, то есть та же форма и те же значения везде? Если да, фреймворк может не перерисовывать экран. Программа резервного копирования тогда не загружает файл заново.
Тому же дереву можно задать и другой вопрос: симметрично ли оно, совпадает ли левая сторона с зеркальным отражением правой? И третий: есть ли путь от корня до листа, сумма значений на котором равна нужному числу (бюджету, порогу очков)?
В прошлых уроках рекурсия шла по одному дереву. Здесь она идёт по двум местам сразу, синхронно: по двум деревьям или по двум половинам одного дерева.
Этот шаг из платной части
Бесплатные шаги в начале курса (их 33) открыты всем: урок, задача и тесты. Этот шаг открывается с полным доступом. Начни с бесплатного аккаунта и бесплатных шагов.
Завести бесплатный аккаунтПосмотреть, что входитНа LeetCode
Задачи, где нужно сравнить два дерева или проверить свойство на путях от корня до листа. Уходи в рекурсию на парах соответствующих узлов или неси вниз по дереву накопленное значение.
isSameTree из урока под тем же именем.
isSymmetric из урока, левое сравнивается с правым, а правое с левым.
hasPathSum из урока, по пути вниз вычитаешь каждое значение из цели.
Запусти isSameTree от каждого узла большого дерева.
hasPathSum, который ещё хранит путь, добавляет узел по пути вниз и убирает его на обратном пути, как в бэктрекинге.