class Solution {
public:
vector<int> postorderTraversal(TreeNode* root) {
class Solution {
public:
vector<int> postorderTraversal(TreeNode* root) {
vector<int>v;
if(root==nullptr)
return v;
stack<TreeNode*>s;
TreeNode* p=root; //创建一个新节点来代表根节点
while(p) //判断当前节点是否为空
{
s.push(p); //将所有的左子树先插入栈
p=p->left;
}
TreeNode* ptr=nullptr;
while(!s.empty())
{
TreeNode* node=s.top();
if(node->right==ptr)
{
s.pop();
v.push_back(node->val);
ptr=node;
}else
{
p=node->right;
while(p)
{
s.push(p);
p=p->left;
}
ptr=nullptr;
}
}
return v;
}
}