Ctrl K

Нарастающие суммы в дереве поиска

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

Больше 9 ключей нет — остаётся 9. К 6 прибавляется 9: 15. К 3 прибавляются 6 и 9: 18.

Пример 2
root=tree_node([5, None, 8, 7]) → [20, None, 8, 15]

8 остаётся 8, 7 превращается в 7 + 8 = 15, а 5 — в 5 + 7 + 8 = 20. Форма дерева не меняется.

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

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