root двоичного дерева. Запишите дерево одной строкой по таким правилам (обход «узел, левое поддерево, правое поддерево»):
- узел записывается своим значением;
- если у узла есть дети, после значения идёт запись левого поддерева в скобках, а затем — правого поддерева в скобках;
- пустые пары скобок () опускаются, кроме одного случая: если левого ребёнка нет, а правый есть, пустая пара () на месте левого обязательна — иначе правого ребёнка нельзя было бы отличить от левого.
Таким образом, у листа скобок нет совсем, а у узла только с левым ребёнком — одна пара.root=tree_node([7, -2, 5, None, None, 1]) → '7(-2)(5(1))'
У -2 детей нет — записываем просто -2. У 5 есть только левый ребёнок, поэтому пишем 5(1) без пустых скобок справа. Итог: 7(-2)(5(1)).
root=tree_node([4, None, 9, 8]) → '4()(9(8))'
У 4 нет левого ребёнка, но есть правый, поэтому нужна пустая пара (): 4()(9(8)).
root=tree_node([3]) → '3'
root=tree_node([7, -2, 5, None, None, 1])
'7(-2)(5(1))'
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 110 тестов на сервере, включая скрытые.