谦虚
class Solution {
public:
vector<int> postorderTraversal(TreeNode* root) {
stack<TreeNode*> stack;
vector<int> result;
stack.push(root);
while (!stack.empty()) {
TreeNode* node = stack.top();
stack.pop();
if (node == nullptr) {
continue;
} else {
result.push_back(node->val); // 中
stack.push(node->right); // 右
stack.push(node->left); // 左
}
}
reverse(result.begin(),result.end());
return result;
}
};
细节:前序遍历是中 左右 后续遍历时左 右 中
这里就是先把这两行代码替换一下
stack.push(node->right); // 右
stack.push(node->left); // 左
然后整体的结果不就是中右左了嘛 ,然后这时候对其进行反转,结果如何呢?左右中 卧槽 ,帧厉害
class Solution {
public:
vector<int> postorderTraversal(TreeNode* root) {
stack<TreeNode*> stack;
vector<int> result;
stack.push(root);
while (!stack.empty()) {
TreeNode* node = stack.top();
stack.pop();
if (node == nullptr) {
continue;
} else {
result.push_back(node->val);
stack.push(node->left);
stack.push(node->right);
}
}
reverse(result.begin(),result.end());
return result;
}
};