root двоичного дерева и числа value и level. Уровни нумеруются с единицы: корень находится на уровне 1, его дети — на уровне 2 и так далее.
Вставьте в дерево новый уровень из вершин со значением value так, чтобы он оказался ровно на уровне level:
- каждой вершине уровня level - 1 добавьте двух новых детей со значением value;
- её прежнее левое поддерево подвесьте левым ребёнком к новой левой вершине, а прежнее правое — правым ребёнком к новой правой;
- если level = 1, создайте новый корень со значением value, а всё исходное дерево сделайте его левым поддеревом.
Верните корень получившегося дерева.root=tree_node([5, 3, 8, None, 4]), value=0, level=2 → [5, 0, 0, 3, None, None, 8, None, 4]
Под корнем 5 появляются две новые вершины 0. Старое левое поддерево (3 с ребёнком 4) уходит влево под левый 0, старое правое (8) — вправо под правый 0.
root=tree_node([2, 1]), value=7, level=1 → [7, 2, None, 1]
При level = 1 новая вершина 7 становится корнем, а всё старое дерево — её левым поддеревом.
root=tree_node([1, 2, 3]), value=9, level=3 → [1, 2, 3, 9, 9, 9, 9]
Уровень 3 на единицу глубже дерева: у каждого листа появляются два ребёнка со значением 9.
Node.val ≤ 100root=tree_node([5, 3, 8, None, 4]), value=0, level=2
[5, 0, 0, 3, None, None, 8, None, 4]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 36 тестов на сервере, включая скрытые.