(迭代法)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;
    }
};
相关推荐
Shadow(⊙o⊙)9 小时前
专题二滑动窗口
数据结构·算法
tankeven9 小时前
HJ181 相差不超过k的最多数
数据结构·c++·算法
XWalnut10 小时前
LeetCode刷题 day13
数据结构·算法·leetcode
小马_xiaoen10 小时前
前端虚拟列表(Virtual List)从原理到实战:海量数据渲染终极方案
前端·数据结构·list
炽烈小老头10 小时前
【每天学习一点算法 2026/04/17】多数元素
数据结构·学习·算法
程序员雷欧11 小时前
Redis基础知识全解析:从数据结构到生产实战
数据结构·数据库·redis
自我意识的多元宇宙11 小时前
二叉树遍历方式代码解读(3层序遍历)
数据结构
im_AMBER11 小时前
Leetcode 158 数组中的第K个最大元素 | 查找和最小的 K 对数字
javascript·数据结构·算法·leetcode·
宵时待雨11 小时前
优选算法专题2:滑动窗口
数据结构·c++·笔记·算法
我真不是小鱼12 小时前
cpp刷题打卡记录29——矩阵置零 & 旋转图像 & 除了自身以外数组的乘积
数据结构·c++·算法·leetcode·矩阵