head — голова односвязного списка, значения в котором идут по неубыванию. Постройте из них сбалансированное дерево поиска по такому правилу:
- корнем становится средний элемент списка; если элементов чётное число, берётся левый из двух средних;
- элементы левее него по тому же правилу образуют левое поддерево, правее — правое;
- пустой кусок даёт пустое поддерево.
Верните корень построенного дерева (для пустого списка — None).head=list_node([1, 3, 6, 8, 12, 15]) → [6, 1, 12, None, 3, 8, 15]
Из шести значений средним берём левое из двух центральных — 6. Слева остаются [1, 3] (корень 1, справа 3), справа [8, 12, 15] (корень 12).
head=list_node([-4, 0, 7]) → [0, -4, 7]
Корень — 0, по бокам -4 и 7.
head=list_node([]) → None
Node.val ≤ 10⁵head=list_node([1, 3, 6, 8, 12, 15])
[6, 1, 12, None, 3, 8, 15]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 73 теста на сервере, включая скрытые.