题源:https://leetcode-cn.com/problems/binary-tree-postorder-traversal/
一、原始代码:
class Solution {
public:
vector<int> postorderTraversal(TreeNode* root) {
vector<int> res;
stack<TreeNode*> s;
TreeNode* last=NULL;
TreeNode*t=root;
while(t!=NULL||!s.empty()){
if(t!=NULL){
s.push(t);
t=t->left;
}else{
TreeNode*temp=s.top();
if(temp->right!=NULL&&temp->right!=last){
t=temp->right;
}
else{
res.push_back(temp->val);
last=temp;
s.pop();
}
}
}
return res;
}
};
1、上面的代码是六个月前写的。循环加嵌套if语句看的我自己都蒙了。