UniLecs #Task. Range Sum in BST
Задача: Дан корневой элемент двоичного дерева поиска. Необходимо вернуть сумму значений всех узлов со значением в заданном диапазоне [min, max].
Пример:
[min, max] = [7, 15]
Output: 32
Разбор
Используем классический поиск в глубину и свойства двоичного дерева поиска. То есть если значение узла больше заданного диапазона, то понятно, что только левая часть может иметь узлы со значением внутри этого диапазона. И наоборот, если значение узла меньше заданного диапазона, то проверяем только правую часть дерева. Если значение текущего узла лежит в диапазоне, то добавляем его в результат.
Используем рекурсивный подход для решения задачи, детали смотрите в коде.
Реализация
https://gist.github.com/unilecs/0c7e63c3788415c62ece4138745f25ca