5815. Поддерево другого дерева
Medium
0 решили
Два двоичных дерева заданы списками в порядке уровней: у узла с индексом
Пустой
i левый ребёнок — 2·i+1, правый — 2·i+2. Значение -1 означает, что узла нет. Корень — индекс 0. Если в слоте -1, его потомки в дерево не входят.sub является поддеревом tree, если в tree есть узел, от которого вниз растёт дерево с теми же значениями и той же формой, что и sub целиком. Лишний ребёнок в этом месте — уже не совпадение.Пустой
sub (пустой список или корень -1) считается поддеревом любого tree. Непустой sub при пустом tree даёт false.Примеры:
Вход:
tree = [3, 4, 5, 1, 2], sub = [4, 1, 2]
Выход:
true
Объяснение: От узла 4 вниз те же дети 1 и 2, и дальше пусто — как в sub.
Вход:
tree = [3, 4, 5, 1, 2, -1, -1, -1, -1, 0], sub = [4, 1, 2]
Выход:
false
Объяснение: У двойки в tree есть левый ребёнок 0. В sub двойка — лист, формы разные.
Вход:
tree = [1, 2, 3], sub = [2]
Выход:
true
Объяснение: Корень не совпал: у него есть дети. Совпал лист 2.
Ограничения:
0 <= tree.length, sub.length <= 10^4
значение узла от -10^9 до 10^9 и не равно -1
-1 означает отсутствие узла
Решите эту задачу в браузере
Создайте бесплатный аккаунт — редактор Python и Java, проверка на тестах за секунды.
Комментарии (0)
Зарегистрируйтесь или войдите, чтобы оставить комментарий
Пока нет комментариев. Будьте первым!