root двоичного дерева. Известно, что в корне записано наименьшее значение всего дерева: ни одна вершина не хранит число меньше root.val. Так бывает, например, в турнирной сетке на выбывание, где в каждом «матче» побеждает меньшее число и поднимается наверх.
Соберите все значения вершин в одно множество (повторы не считаются) и верните второе по величине снизу значение, то есть наименьшее из тех, что строго больше минимума. Если в дереве всего одно различное значение, верните -1.root=tree_node([4, 4, 9, None, None, 9, 12]) → 9
Самое маленькое значение в дереве — 4 (оно в корне), следующее по величине — 9.
root=tree_node([7, 7, 7, 7, 7]) → -1
Все вершины хранят 7, второго различного значения нет, поэтому ответ -1.
root=tree_node([3, 3, 3, 3, 8, 3, 5]) → 5
Различные значения — 3, 5 и 8; второе по возрастанию — 5, хотя 8 встречается выше в дереве.
Node.val ≤ 2³¹ − 1root.val ≤ Node.val для каждой вершиныroot=tree_node([4, 4, 9, None, None, 9, 12])
9
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 117 тестов на сервере, включая скрытые.