Iterative approach explained
Approach 1 : Iterative\n\n\t// we will preCompute whole tree\'s preorder first \n    // and then it would be a cake walk\n    vector<int> postorder(Node* root) 
**Approach 1 : Iterative**\n```\n\t// we will preCompute whole tree\'s preorder first \n    // and then it would be a cake walk\n    vector<int> postorder(Node* root) {\n        if(!root)   return {};\n        stack<Node*> parent , pre_compute;\n        \n        parent.push(root);\n        while(parent.size())\n        {\n            Node *temp = parent.top();\n            parent.pop();\n            \n            for(auto i:temp->children)\n                parent.push(i);\n            pre_compute.push(temp);\n        }\n        vector<int> ans;\n        while(pre_compute.size())\n        {\n            ans.emplace_back( pre_compute.top()->val );\n            pre_compute.pop();\n        }\n        return ans;\n    }\n```\n**Approach 2 : Recurssive for Beginers**\n```\n vector<int> ans;    \n    vector<int> postorder(Node* root) {\n        if(!root)            return {};\n        \n        for(auto i:root->children)\n            postorder(i);\n        ans.emplace_back(root->val);\n        return ans;\n    }\n```\nfollow up : https://leetcode.com/problems/binary-tree-postorder-traversal/discuss/651066/explanation-Iterative-using-stack
[]