(迭代法)145. 二叉树的后序遍历

原题链接:(迭代法)145. 二叉树的后序遍历

思路是跟迭代法前序遍历一样的

但是要注意,需要交换入栈顺序

遵循入栈先进后出原则,迭代法的前序顺序是中右左,而后序是中左右,这一点是跟递归的前序后序顺序相反的

最后要把result容器内的值反转一下 就是迭代法后续遍历的值

全代码:

cpp 复制代码
class Solution {
public:
    vector<int> postorderTraversal(TreeNode* root) {
        stack<TreeNode*> stackA;
        vector<int> result;
        stackA.push(root);
        while(!stackA.empty())
        {
            TreeNode* Node = stackA.top();
            stackA.pop();
            if(Node == NULL) continue;
            result.push_back(Node ->val);
            //相比于前序,后续需要更改下入栈顺序,先进后出
            //所以迭代法前序入栈应该是中右左,后序应该是中左右,这一点是跟递归相反的
            stackA.push(Node ->left);
            stackA.push(Node ->right);
        }
        reverse(result.begin(),result.end());
        return result;
    }
};
相关推荐
Lu Yao_9 分钟前
用golang实现二叉搜索树(BST)
开发语言·数据结构·golang
JeffersonZU2 小时前
【数据结构】2-3-1单链表的定义
数据结构·链表
JeffersonZU2 小时前
【数据结构】1-4算法的空间复杂度
c语言·数据结构·算法
L_cl2 小时前
【Python 算法零基础 4.排序 ① 选择排序】
数据结构·算法·排序算法
无聊的小坏坏3 小时前
【数据结构】二叉搜索树
数据结构
丁一郎学编程5 小时前
优先级队列(堆)
java·数据结构
Codeking__6 小时前
前缀和——中心数组下标
数据结构·算法
GG不是gg6 小时前
数据结构:二叉树一文详解
数据结构·青少年编程
花火QWQ6 小时前
图论模板(部分)
c语言·数据结构·c++·算法·图论
姬公子5217 小时前
leetcodehot100刷题——排序算法总结
数据结构·c++·算法·排序算法