当前位置: 首页 > news >正文

leetcode0145. 二叉树的后序遍历-easy

1 题目:二叉树的后序遍历

官方标定难度:易

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

示例 1:

输入:root = [1,null,2,3]

输出:[3,2,1]

解释:
在这里插入图片描述

示例 2:

输入:root = [1,2,3,4,5,null,8,null,null,6,7,9]

输出:[4,6,7,5,2,9,8,3,1]

解释:
在这里插入图片描述

示例 3:

输入:root = []

输出:[]

示例 4:

输入:root = [1]

输出:[1]

提示:

树中节点的数目在范围 [0, 100] 内
-100 <= Node.val <= 100

进阶:递归算法很简单,你可以通过迭代算法完成吗?

2 solution

递归输出很简单,按照先左子树,再右子树,再根节点的顺序就行

代码

/*** 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) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:
void postorderTraversal(TreeNode *root, vector<int> &result){if(!root) return;postorderTraversal(root->left, result);postorderTraversal(root->right, result);result.push_back(root->val);
}vector<int> postorderTraversal(TreeNode *root) {vector<int> result;postorderTraversal(root, result);return result;
}
};

结果

在这里插入图片描述

3 进阶

借助栈可以进行深度优先遍历,先将逆序保存下来,然后再反转过来

代码

class Solution {
public:vector<int> postorderTraversal(TreeNode *root) {if(!root) return {};vector<int> result;stack<TreeNode *> s;s.push(root);while (!s.empty()){auto x = s.top();result.push_back(x->val);s.pop();if(x->left) s.push(x->left);if(x->right) s.push(x->right);}std::reverse(result.begin(), result.end());return result;}
};

结果

在这里插入图片描述

http://www.xdnf.cn/news/8713.html

相关文章:

  • AutoSAR从概念到实践系列之MCAL篇(一)——MCAL架构及其模块详解
  • 手撕数据结构算法OJ——栈和队列
  • eNSP无法启动AR报错码40,而且按照eNSP帮助手册排查都没用,我的处理方法【自己存档版】
  • 2N60-ASEMI功业控制与自动化专用2N60
  • python中,处理多分类时,模型之间的参数设置
  • sort和swap函数
  • 数据结构之稀疏矩阵与三元组表示法
  • 23种设计模式全面解析
  • 告别Feign:基于Spring 6.1 RestClient构建高可靠声明式HTTP客户端
  • 今日多肽之——订书肽
  • Linux文件类型
  • 建筑科技的未来图景:探究中建海龙的创新基因
  • C语言超详细结构体知识
  • 工程化实践:Flutter项目结构与规范
  • 广东中级消防设施操作员理论考试精选题
  • SpringAI+DeepSeek大模型应用开发——5 ChatPDF
  • 相比其他缓存/内存数据库(如 Memcached, Ehcache 等),Redis 在微服务环境中的优势和劣势是什么?
  • 【RK3588 嵌入式图形编程】-SDL2-扫雷游戏-结束和重新开始游戏
  • string函数的应用
  • Python 写生成 应用商店(2025版) 网页 方便收集应用 ,局域网使用
  • 极狐GitLab 外部授权控制机制是怎样的?
  • 【前端知识】今天聊一聊web的事件机制
  • SpringBoot学习(properties、yml(主流)、yaml格式配置文件)(读取yml配置文件的3种方式)(详解)
  • Kafka消费者端重平衡流程
  • 中间件--ClickHouse-9--MPP架构(分布式计算架构)
  • kafka菜鸟教程
  • GEE学习笔记 29:基于GEE的多源Landsat合成与植被指数时序提取
  • axios 模拟实现
  • 【HFP】蓝牙HFP协议音频连接核心技术深度解析
  • 【2】CICD持续集成-k8s集群中安装Jenkins