Ctrl K

Прибавить все ключи побольше

Средняя
Дан корень root бинарного дерева поиска: у каждой вершины все ключи в левом поддереве меньше её ключа, а в правом — больше. Все ключи различны. Замените ключ каждой вершины на сумму её исходного ключа и всех исходных ключей дерева, которые больше него. Форма дерева не меняется. Верните корень изменённого дерева (для пустого дерева — None).
Пример 1
root=tree_node([6, 2, 9, None, 4]) → [15, 21, 9, None, 19]

Ключ 9 самый большой и остаётся 9. К 6 прибавляется 9 — получается 15, к 4 — 6 и 9 (19), к 2 — все остальные (21).

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

5 не меняется, а -3 превращается в -3 + 5 = 2.

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

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