inorder_vals — симметричный обход: левое поддерево, затем вершина, затем правое поддерево;
- postorder_vals — обратный обход: левое поддерево, затем правое, и только потом сама вершина.
Восстановите дерево и верните его корень. Гарантируется, что оба списка получены из одного и того же дерева.inorder_vals=[4, 8, 2, 6, 5], postorder_vals=[4, 2, 8, 5, 6] → [6, 8, 5, 4, 2]
Последний в обратном обходе — 6, это корень. В симметричном слева от 6 стоят [4, 8, 2] — левое поддерево, справа [5] — правое. В левом поддереве корень 8 (последний из 4, 2, 8), его дети 4 и 2.
inorder_vals=[1, 2, 3], postorder_vals=[3, 2, 1] → [1, None, 2, None, 3]
Корень 1, слева от него в симметричном обходе ничего нет — всё уходит вправо: цепочка 1 → 2 → 3.
inorder_vals=[-7], postorder_vals=[-7] → [-7]
inorder_vals=[4, 8, 2, 6, 5], postorder_vals=[4, 2, 8, 5, 6]
[6, 8, 5, 4, 2]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 45 тестов на сервере, включая скрытые.