Python iterative and recursive solution with explanation 
Recursion is easy to implement and understand by definition https://en.wikipedia.org/wiki/Tree_traversal#Post-order_(LRN).\n\ndef postorder(self, root):\n      
**Recursion** is easy to implement and understand by definition https://en.wikipedia.org/wiki/Tree_traversal#Post-order_(LRN).\n```\ndef postorder(self, root):\n        """\n        :type root: Node\n        :rtype: List[int]\n        """\n        res = []\n        if root == None: return res\n\n        def recursion(root, res):\n            for child in root.children:\n                recursion(child, res)\n            res.append(root.val)\n\n        recursion(root, res)\n        return res\n```\n\n**Iteration** is basically pre-order traversal but rather than go left, go right first then reverse its result.\n```\ndef postorder(self, root):\n        res = []\n        if root == None: return res\n\n        stack = [root]\n        while stack:\n            curr = stack.pop()\n            res.append(curr.val)\n            stack.extend(curr.children)\n\n        return res[::-1]\n```
[]