Правильное дерево поиска

легко

Дан корень бинарного дерева. Нужно проверить, является ли дерево правильным бинарным деревом поиска

Правильное бинарное дерево поиска удовлетворяет условиям:

  • Все узлы левого поддерева вершины имеют значение строго меньше значения вершины
  • Все узлы правого поддерева вершины имеют значение строго больше значения вершины
  • Левое и правое поддерево вершины должны быть так же правильными деревьями поиска

Пример 1:

Ввод: root = [10,5,11,-2,7,null,15,null,null,6,8]
Вывод: true

Пример 2:

Ввод: root = [10,5,11,-2,7,null,15,null,null,4]
Вывод: false
Объяснение: вершина 4 находится в левом поддереве вершины 10, значит 4 должно быть меньше 10 (это верно), так же вершина 4 в правом поддереве вершины 5, значит 4 должно быть больше 5 - а это не так, поэтому вернем false

Ограничения:

  • Число узлов в дереве >= 1
  • Высота дерева <= 1000
  • Значение вершин дерева лежит в диапазоне [-pow(2,31), pow(2,31) - 1] (включительно). Например, pow(2,3) - означает два в третьей степени