LeetCode 145. 二叉树的后序遍历

【简单】力扣算法题解析LeetCode145:二叉树的后序遍历 这篇文章介绍了二叉树后序遍历的迭代实现方法。通过使用显式栈替代递归,结合状态标记(lastVisited指针)来判断右子树是否已处理,实现了高效的后序遍历算法。该算法时间复杂度为O(n),空间复杂度为O(h),其中h为树高。文章包含详细的设计思路、Java代码实现以及边界条件处理,并附有执行效果截图。该方法避免了递归的系统栈开销,通过精确控制节点访问顺序,确保了遍历的正确性和高效性。 阅读详情

给定一个二叉树,返回它的 后序 遍历。

示例:

输入: [1,null,2,3]
1
\
2
/
3

输出: [3,2,1]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?

非递归版tips : 使用栈来记录,类似dfs, 先求出其逆后序遍历的结果,然后再反转

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    vector<int> postorderTraversal(TreeNode* root) {
        stack<TreeNode*> st;
        vector<int> result;
        if(root == NULL) {
            return result;
        }
        st.push(root);
        while(!st.empty()) {
            TreeNode* node = st.top();
            st.pop();
            result.push_back(node->val);
            if(node->left != NULL) {
                st.push(node->left);
            }
            if(node->right != NULL) {
                st.push(node->right);
            }
        }
        reverse(result.begin(), result.end());
        return result;
    }
};
Leetcode——145,二叉树后序遍历 /** * \* Created: liuhuichao * \* Date: 2019/8/21 * \* Time: 28:08 PM * \* Description: 二叉树的后序遍历 : 后序遍历是先遍历左子树,然后遍历右子树,最后访问树的根节点 * \ * 给定一个二叉树,返回它的 后序 遍历。 * <p> * 示例: * <p> ... 阅读详情

相关推荐

【LeetCode 困难 树 python3】145. 二叉树的后序遍历

想要看更加舒服的排版、更加准时的推送 关注公众号“不太灵光的程序员” 每日八点有干货推送,微信随时解答你的疑问 145. 二叉树的后序遍历 python3 困难 树 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? from typing import List # Definition for a binary tree node..

834

LeetCode第145题_二叉树的后序遍历

给你一棵二叉树的根节点root,返回其节点值的。

qq_40263592的博客 1392

省三医院新门诊大楼网络安全建设项目实施方案

为了响应国家建设数字医疗,构建医联网、医共体的号召,新门诊大楼现有计算机网络,实现各门诊室、药房、医学影像科室及后勤科室的终端数据互通。在互联网出口以三层模式部署两台防火墙,作为连接公网的出口设备;出于等保合规和自身业务安全的考虑,现需要该网络上通过网络安全设备实现安全建设。公网出口防火墙,配置攻击防御策略,防御互联网上的病毒进入内网。公网出口防火墙配置攻击防御策略,防御外网对内网的入侵行为。服务器取得边界防火墙,配置攻击防御策略,入侵防御策略。公网出口防火墙配置入侵防御策略,防御外网对内网发起的D。

m0_63645854的博客 2014

LeetCode 145 二叉树的后序遍历 Java

LeetCode 145 二叉树的后序遍历 Java题目描述代码 题目描述 给定一个二叉树,返回它的 后序 遍历。 代码 迭代实现 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * ...

qq_29061435的博客 222

(入门向)在Ubuntu22.04.3安装Matlab2021b,以及无法安装在当前目录下的解决办法(见最后)

还有这个/usr/local是只读状态,我试过sudo chmod..去改那个文件的读,结果还是安装不了,我不是这个默认路径,因为它文件夹还是只读,于是我在matlab2021b下创了一个bin,并选上。输入完成后,依次按y,因为里面有三个文件,他会让你确定3次密码,直接yyy跳过即可。你可能会遇到装不下的情况,这个软件占30g,可是你分配给虚拟机就剩10g。,于是我去Downloads下建了一个matlab2021b文件夹,果然好使,3).此时,会提示你输入密码,因为这个rar是有密码的,

harrype的博客 7285

【创作赢红包】Gurobi学术版证书更新与Python环境配置全攻略

本文详细解析了Gurobi学术版证书过期后的完整更新流程与Python环境配置方法。从彻底清理旧版残留、手把手注册获取新许可证,到软件安装、证书激活,最后重点讲解如何将gurobipy接口正确配置到Python的site-packages目录,并提供了常见问题排查方案,帮助用户高效解决证书与配置难题。

efc1234567的博客 613

LeetCode 145二叉树的后序遍历

LeetCode 145二叉树的后序遍历 题目简述:给定一个二叉树,返回它的 后序 遍历。 输入:[1,null,2,3] 输出:[3,2,1] 思路:递归 class Solution { public: vector<int> res; void dfs(TreeNode *root) { if(!root) return; dfs(root->left); dfs(root->right);

XBlog 388

即梦AI使用教程

摘要: 即梦AI是字节跳动推出的多模态AI创作平台,整合图片、视频、智能编辑功能,基于OmniHuman模型支持中英日三语操作。核心特点包括: 技术升级:4.0版本强化中文语义理解与微观表现力,新增故事分镜生成; 创作功能:支持文本/图片转视频、AI对口型、商业级抠图与多图层融合; 用户友好:移动/网页双端适配,灵感社区复用提示词,剪映生态无缝衔接; 应用场景:覆盖电商换装、虚拟主播、设计融合等需求,未来将开放API拓展生态。 (字数:149)

专业深耕,技术前沿 6305

LeetCode 145 二叉树的后序遍历

LeetCode 145 二叉树的后序遍历 题目链接 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 看题目的意思是想让我们写个非递归的后序遍历,但那个非常复杂,所以我强行来了一波递归????,AC代码如下: /** * Definition for a binary tree node. * struct TreeNode { * int val; * Tr

旺崽的博客 2728

【阅读文献笔记】FoundationStereo: Zero-Shot Stereo Matching

提出首个零样本泛化立体匹配基础模型设计 STA 模块融合单目先验提出 AHCF 模块增强代价滤波构建 100 万合成数据集 FSD + 自净化流程。

qq_46460379的博客 1257

C2000 CLA协处理器:嵌入式实时控制性能优化与实战指南

在嵌入式实时控制系统中,主CPU常因高频率、低延迟的控制算法而面临性能瓶颈。为解决此问题,协处理器技术应运而生,它通过硬件并行架构分担计算密集型任务,从而提升系统整体性能。其核心原理在于独立的计算单元与总线设计,能够实现近乎零延迟的响应,这对于电机驱动、数字电源等闭环控制场景具有极高的技术价值。本文聚焦于德州仪器C2000系列微控制器中的控制律加速器(CLA),深入解析其作为独立浮点协处理器如何通过任务调度与消息RAM通信机制,有效实现性能倍增,并提供了从内存配置到代码调试的完整工程实践方案。

weixin_29192211的博客 305

力扣[LeetCode].145. 二叉树的后序遍历

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} *.

C/C++/Linux/MySQL 446

Hugging Face快速入门(重点讲解模型(Transformers)和数据集部分(Datasets))

1. Hugging Face是什么,提供了哪些内容 2. Hugging Face模型的使用(Transformer类库) 3. Hugging Face数据集的使用(Datasets类库)

iioSnail的博客 8万+

Leetcode145 二叉树的后序遍历 C++,Java,Python

Leetcode145 二叉树的后序遍历 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal/ 博主Github:https://github.com/GDUT-Rp/LeetCode 题目: 给定一个二叉树,返回它的后序 遍历。 示例 1: 输入: [1,null,2,3] ...

Rp的博客 331

YOLOv8改进策略【卷积层】| ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点

本文记录的是利用模块优化的目标检测网络模型。的目的是在不出现过参数化的情况下有效地增加卷积的感受野,从而解决了在感受野扩展中的参数膨胀问题。本文将其加入到深度可分离卷积中,有效降低模型参数量和计算量,并二次创新C2f,使模块更好地捕捉低频特征,增强网络性能。Wavelet Convolutions for Large Receptive Fields小波卷积及其改进的实现代码如下: 四、创新模块 4.1 改进点1⭐ 模块改进方法:加入(第五节讲解添加步骤)。添加后如下:模块改进方法:基于的(第五节讲解添加

Limiiiing的博客 1092

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LeetCode —— 145. 二叉树的后序遍历

145. 二叉树的后序遍历:递归 + 非递归

微笑,来自内心坚不可摧的自信。 984

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LeetCode145-二叉树的后序遍历

LeetCode145-二叉树的后序遍历 最近全国疫情严重,待在家里没事干,马上又要准备春招了,最近刷刷题,记录一下!再说一句,武汉加油,大家出门记得戴口罩! 1、题目 给定一个二叉树,返回它的后序遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 2、思路 ...

sk18192449347的博客 217

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LeetCode145. 二叉树的后序遍历

LeetCode145. 二叉树的后序遍历 非递归: class Solution { public List<Integer> postorderTraversal(TreeNode root) { LinkedList<Integer> result = new LinkedList<>(); Stack<TreeNode> stack = new Stack<>(); if (root

Loser_you的博客 128

LeetCode 145:二叉树的后序遍历(java)

LeetCode 145:二叉树的后序遍历(java) 题目: 解答: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val...

樊凯的博客 597

leetcode-145 | 二叉树的后序遍历

title: leetcode-145 | 二叉树的后序遍历 date: 2019-7-28 15:13:38 comments: true categories: “leetcode” tags: - leetcode 困难难度 - 栈 - 二叉树的遍历 题目描述 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1   \  &n...

梦否 483

C/C++描述 LeetCode 145. 二叉树的后序遍历

C/C++描述 LeetCode 145. 二叉树的后序遍历   大家好,我叫亓官劼(qí guān jié ),在优快云中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在优快云中写博客,唯一博客更新的地址为:亓官劼的博客 本文原创为亓官劼,请大家支持原创,部分平台一直在恶意盗取博主的文章!!! 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 题解 递归解法:

一起加油 1518

145.力扣LeetCode_二叉树的后序遍历

本文介绍了二叉树后序遍历的递归和非递归实现方法。递归方法采用"左-右-根"的顺序,通过递归调用实现;非递归方法提供了两种实现思路:1) 使用栈和pre指针标记已访问节点,通过判断右子树是否处理来控制访问顺序;2) 使用栈和flag标记法,用0和1标记节点状态,分别表示待处理子树和可访问节点。两种非递归方法都通过栈模拟递归过程,其中pre指针法更简洁,而flag标记法更直观。文章包含详细注释的代码实现,解释了核心思路和关键步骤,适合理解二叉树后序遍历的实现原理。

2401_82472941的博客 635

leetcode 145. 二叉树的后序遍历

leetcode 145. 二叉树的后序遍历 题目详情 题目链接 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 我的代码 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right;

qq_33789406的博客 293

leetcode 145. 二叉树的后序遍历 (两种解法)JavaScript解决

leetcode 145. 二叉树的后序遍历 JavaScript解决问题描述代码 问题描述 给定一个二叉树,返回它的 后序 遍历。 代码 方案一: var postorderTraversal = function(root) { let res = [],stack = []; while(root){ if(root.left){ stack.push(root); root = root.left; }

ryyzxf的博客 207

【LeetCode: 145. 二叉树的后序遍历 + 栈】

【LeetCode: 145. 二叉树的后序遍历 + 栈】给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。

Coder_ljw的博客 1280

Leetcode145(力扣145):二叉树的后序遍历

class Solution { public: vector<int> postorderTraversal(TreeNode* root) { if(!root) return {}; stack<TreeNode*> stack1; stack<TreeNode*> stack2; vector<int> res; stack1.push(root);

weixin_44537258的博客 137
上一篇: LeetCode 279. 完全平方数
下一篇: LeetCode 144. 二叉树的前序遍历
wenkun97
博客等级 码龄10年 15粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值