values из различных целых чисел. По нему строится двоичное дерево по такому правилу:
- корнем становится наибольшее число массива;
- левое поддерево строится тем же правилом из части массива слева от этого числа;
- правое поддерево — из части справа от него;
- пустая часть даёт пустое поддерево.
Постройте это дерево и верните его корень.values=[4, 9, 1, 7, 3] → [9, 4, 7, None, None, 1, 3]
Наибольшее число 9 становится корнем. Слева от него только 4 — это левый ребёнок. Справа часть [1, 7, 3]: её максимум 7 — правый ребёнок корня, у которого слева 1, а справа 3.
values=[2, 5, 8] → [8, 5, None, 2]
Массив возрастает, поэтому каждый максимум стоит в конце своей части: дерево вытягивается в цепочку левых детей 8 → 5 → 2.
values=[10, 3, 6, 2, 0] → [10, None, 6, 3, 2, None, None, None, 0]
10 стоит первым, поэтому левого поддерева нет. Справа остаётся [3, 6, 2, 0]: корень поддерева 6, слева от него 3, справа часть [2, 0] с корнем 2 и правым ребёнком 0.
values.length ≤ 1000values[i] ≤ 1000values различныvalues=[4, 9, 1, 7, 3]
[9, 4, 7, None, None, 1, 3]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 109 тестов на сервере, включая скрытые.