JavaScript Solution - Iterative 2 Stacks Approach
\nvar postorder = function(root) {\n    if (root == null) return [];\n    \n    const values = [];\n    const stackIn = [];\n    const stackOut = [];\n    stack
```\nvar postorder = function(root) {\n    if (root == null) return [];\n    \n    const values = [];\n    const stackIn = [];\n    const stackOut = [];\n    stackIn.push(root);\n    \n    while (stackIn.length > 0) {\n        const node = stackIn.pop();\n        if (node.children) {\n            const length = node.children.length;\n            for (let i = 0; i < length; i++) {\n                stackIn.push(node.children[i]);\n            }\n        }\n        stackOut.push(node.val);\n    }\n    \n    while (stackOut.length > 0) {\n        stackIn.push(stackOut.pop());\n    }\n    \n    return stackIn;\n};\n```
['Iterator', 'JavaScript']