Функция должна принимает список хз и создает сбалансированное бинарное дерево поиска, состоящее из того же набора элементов как хз.
Результат должен быть таким: (если список [1,2,3,4,5,6,7,8])
Узел (Node (узел (узел 1 Пустой Пустой) 2 Пустой) 4 (4 Узел Пустой Пустой)) 5 (Узел (Node Пустой 6 Пустой) 7 (Узел 8 Пустой Пустой))
то есть дерево должно выглядеть следующим образом:
5
/ \
3 7
/ \ / \
2 4 6 8
/
1
а не это:
5
/ \
4 6
/ \
3 7
/ \
2 8
/
1
Может кто-нибудь сказать мне, как это сделать? Я считаю, что я могу сделать второе дерево, которое не является идеально сбалансированным, но не знаю, как сделать первый.
Я признателен за любую помощь !! Заранее спасибо!













