class Solution
{
public:
vector<int> postorderTraversal(TreeNode* root)
{
vector<int> v;
if(root==nullptr) return v;
stack<TreeNode*> s1,s2; //定义两个栈,s2中存放后序遍历得到的元素,s1用来搞事情
s1.push(root);
TreeNode* temp;
while(!s1.empty())
{
temp=s1.top();
s1.pop();
s2.push(temp);
if(temp->left) s1.push(temp->left);
if(temp->right) s1.push(temp->right);
}
while(!s2.empty())
{
v.push_back(s2.top()->val);
s2.pop();
}
return v;
}
};