Не уверен, какой язык вы используете, но поскольку вы упомянули, что пытаетесь использовать глобальный массив, я предполагаю, что он позволяет вам добавлять массив. Это означает, что вам не нужно отслеживать правильный индекс массива для каждого значения дерева, поскольку вы добавляете массив в правильном порядке. Будет работать что-то вроде следующего псевдокода.
postOrderTree: int[] = [];
func createPostOrderTree(TreeNode node) {
if node is null {
return;
}
createPostOrderTree(node.leftChild);
createPostOrderTree(node.rightChild);
postOrderTree.append(node.val);
}