root двоичного дерева поиска: в левом поддереве любой вершины значения меньше, чем в ней, в правом — больше. Все значения различны.
Добавьте в дерево число value, которого в нём ещё нет. Спускайтесь от корня: если value меньше значения текущей вершины, идите влево, иначе — вправо. Когда нужного ребёнка нет, подвесьте на его место новую вершину со значением value. Остальные вершины не перемещайте.
Верните корень дерева после вставки (для пустого дерева это будет новая вершина).root=tree_node([10, 5, 15, None, 8]), value=7 → [10, 5, 15, None, 8, None, None, 7]
7 < 10 — идём влево к 5; 7 > 5 — вправо к 8; 7 < 8, а левого ребёнка у 8 нет — туда и вешаем 7.
root=tree_node([3, 1]), value=20 → [3, 1, 20]
20 больше корня, правое место у корня свободно.
root=tree_node([]), value=-4 → [-4]
Дерево пустое — новая вершина становится корнем.
value среди них нетroot=tree_node([10, 5, 15, None, 8]), value=7
[10, 5, 15, None, 8, None, None, 7]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 65 тестов на сервере, включая скрытые.