root двоичного дерева. Нарисуйте дерево в виде таблицы строк по таким правилам.
Пусть в дереве L уровней (у дерева из одного корня L = 1). Таблица состоит из L строк и 2^L − 1 столбцов, все клетки изначально — пустые строки "".
- Корень записывается в верхнюю строку, ровно в средний столбец.
- Если узел стоит в строке r (нумерация с нуля) и столбце c, то его левый ребёнок ставится в строку r + 1 и столбец c − 2^(L − r − 2), а правый — в столбец c + 2^(L − r − 2).
- В клетку записывается значение узла в виде строки, например "-3".
Верните получившуюся таблицу как список строк таблицы.root=tree_node([7, None, -3]) → [['', '7', ''], ['', '', '-3']]
Два уровня, значит ширина 2² − 1 = 3. Корень 7 — в среднем столбце, его правый ребёнок -3 — в столбце 2 следующей строки.
root=tree_node([5, 8, 1, 4]) → [['', '', '', '5', '', '', ''], ['', '8', '', '', '', '1', ''], ['4', '', '', '', '', '', '']]
Три уровня, ширина 7. Корень в столбце 3, дети на расстоянии 2 от него (столбцы 1 и 5), внук 4 — на расстоянии 1 от своего родителя 8, в столбце 0.
root=tree_node([7, None, -3])
[['', '7', ''], ['', '', '-3']]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 65 тестов на сервере, включая скрытые.