Сбалансированное дерево

средне

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

Дерево считается сбалансированным по высоте, если высота левого и правого поддерева не отличаются больше чем на 1 для каждой вершины.

ВАЖНО: используй рекурсивную реализацию

Пример 1:

Ввод: root = [1,3,2,4,5,null,null,7,8]
Вывод: false
Объяснение: Для корневой вершины высота левого поддерева - 3, а для правого - 1; 3 - 1 > 1, поэтому дерево не сбалансировано

Пример 2:

Ввод: root = [3,9,20,null,null,15,7]
Вывод: true
Объяснение: Для корневой вершины высота левого поддерева — 1, правого — 2; |2 - 1| <= 1. Для всех остальных вершин разница высот также не превышает 1, поэтому дерево сбалансировано

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

  • Число узлов в дереве >= 1
  • Высота дерева <= 1000
  • Значение вершин дерева лежит в диапазоне [-10 000, 10 000] (включительно)