Ctrl K

Путь с шагом в единицу

Средняя
Дан корень root двоичного дерева с целыми числами в вершинах. Путь — это цепочка различных вершин, где соседние в цепочке связаны ребром дерева; путь может подниматься к родителю и снова спускаться в другую ветку. Путь подходит, если значения вдоль него меняются ровно на 1 на каждом шаге и всё время в одну сторону: например, 3, 4, 5, 6 или 9, 8, 7. Верните число вершин в самом длинном подходящем пути. Одна вершина — путь длины 1.
Пример 1
root=tree_node([5, 4, 6, 3, None, None, 9]) → 4

Путь 3 → 4 → 5 → 6 поднимается от левого внука к корню и спускается в правого ребёнка; каждый шаг меняет значение на 1. 9 к нему не присоединить.

Пример 2
root=tree_node([2, 3, 3]) → 2

Путь 3 → 2 → 3 не подходит: значения должны идти в одну сторону. Лучшее — 2 и одна из троек.

Пример 3
root=tree_node([8, 7, None, 6, None, None, 5]) → 4
Ограничения
  • 1 ≤ число вершин ≤ 3·10⁴
  • -3·10⁴ ≤ Node.val ≤ 3·10⁴
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЭто дерево поиска? СредняяДве перепутанные вершины СредняяВсе пути до листьев с заданной суммой СредняяДерево в правую цепочку СредняяСумма чисел на ветвях Средняя
загружаем Python…
Вход
root=tree_node([5, 4, 6, 3, None, None, 9])
Ожидается
4

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 115 тестов на сервере, включая скрытые.