LeetCode 力扣 145. 二叉树的后序遍历 binary tree postorder traversal

JSBSim开发手册:飞机仿真模型开发指南 JSBSim是一款开源的飞行动力学模型仿真引擎,支持多种飞行器的仿真,包括固定翼飞机、直升机、无人机等。JSBSim的设计目标是提供一个灵活、高效、精确的飞行动力学仿真环境。飞行动力学仿真:实现飞行器的动力学仿真,包括空气动力学、发动机、质量和惯性等模型。控制系统仿真:实现飞行器的控制系统仿真,包括自动驾驶仪、飞控系统等。环境仿真:模拟飞行环境,包括大气模型、风力模型等。本文详细介绍了如何使用C++进行JSBSim开发,包括系统设计、模型实现、代码优化和性能调优等方面的内容。 阅读详情

大家觉得写还可以,可以点赞、收藏、关注一下吧!
也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn


145. 二叉树的后序遍历

题目描述

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

示例:

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

输出: [3,2,1]

进阶

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

分析

递归版

  • 递归版本就是后序遍历的模板题
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    List<Integer> list = new LinkedList<>();
    public List<Integer> postorderTraversal(TreeNode root) {
        dfs(root);
        return list;
    }
    //简直就是后序遍历模板题!
    public void dfs(TreeNode node){
        if(node == null)return ;
        dfs(node.left);
        dfs(node.right);
        list.add(node.val);
    }
}

迭代版

  1. 第一时间就需要想到栈
  2. 我们需要一个stack栈来存每个节点,将其值压进栈,然后再继续将左右子节点进栈
  3. 思想和递归方式类似,就是需要想到栈这个数据结构
class Solution {
  public List<Integer> postorderTraversal(TreeNode root) {
    LinkedList<TreeNode> stack = new LinkedList<>();	//利用到的栈
    LinkedList<Integer> result = new LinkedList<>();	//返回结果
    // 为空则直接返回空“数组“
    if (root == null) {
      return result;
    }

    stack.add(root);
    while (!stack.isEmpty()) {
      TreeNode node = stack.pollLast();
      result.addFirst(node.val);
      if (node.left != null) {
        stack.add(node.left);
      }
      if (node.right != null) {
        stack.add(node.right);
      }
    }
    return result;
  }
}

提交结果

在这里插入图片描述


2020年8月23日更

大家觉得写还可以,可以点赞、收藏、关注一下吧!
也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn


EtherCAT主站SOEM -- 19 --Qt-Soem通过CSP模式(周期同步位置模式)控制一个电机转圈圈 以上就是EtherCAT主站SOEM – 19 --Qt-Soem通过CSP模式(周期同步位置模式)控制一个电机转圈圈的内容。有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。创作不容,如果文档对您有帮助,记得给个赞。 阅读详情

相关推荐

Mac新手必看:为什么你的终端找不到Python命令?5分钟搞定zsh报错

本文针对Mac用户在终端遇到“zsh: command not found: python”报错的问题,提供了深度解析与实战修复指南。文章解释了macOS系统因历史原因默认使用`python3`而非`python`命令,并详细介绍了四种解决方案:养成使用`python3`的习惯、创建别名、通过Homebrew安装链接以及修改PATH环境变量,帮助新手快速解决zsh报错,顺利开始Python开发。

weixin_29248653的博客 594

Leetcode 145. Binary Tree Postorder Traversal二叉树后序遍历

Given a binary tree, return thepostordertraversal of its nodes' values. Example: Input:[1,null,2,3] 1 \ 2 / 3 Output:[3,2,1] 题目链接:https://leetcode.com/problems/binary-tree-...

salmonwilliam的博客 478

硬件原理图:从软件思维到硬件接口的嵌入式开发破局指南

本文为软件开发者提供了读懂硬件原理图的嵌入式开发破局指南。文章将硬件原理图类比为“硬件系统的架构图”,引导读者将软件API调用思维迁移到硬件接口理解上,详细解析了电阻、电容、二极管等常见元器件的“硬件API”功能与选型逻辑,并通过实战电路拆解,阐述了从原理图分析到驱动代码编写的完整思维链条,帮助开发者建立软硬件协同的系统级视角。

lg888的博客 496

LeetCode 145. Binary Tree Postorder Traversal 二叉树的后序遍历

题目:给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?代码实现:后序遍历的通用实现可以查看博客:二叉树遍历系列--后序遍历递归版本:class Solution { private List&lt;Integer&gt; p...

zhangzhetaojj的博客 322

MC33PT2000控制详解一:PT2000 Dev Studio工具的使用

MC33PT2000共可控制6个高低端(如控制6个高压喷油器),1个高低端(如控制高压油泵)和DC-DC模块(如升压到65V).

m0_69929716的博客 1359

地平线Matrix-Client实战:3分钟搞定摄像头调试与3D视图配置(附避坑指南)

本文详细介绍了地平线Matrix-Client在摄像头调试与3D视图配置中的实战技巧,包括环境准备、核心功能快速上手、高阶调试与性能优化等。通过3分钟快速配置指南和避坑建议,帮助开发者高效完成智能视觉系统开发,特别适用于自动驾驶和机器人视觉领域。

w7x8y9z的博客 267

Leetcode 145.二叉树的后序遍历(Binary Tree Postorder Traversal)

Leetcode 145.二叉树的后序遍历 1 题目描述(Leetcode题目链接)   给定一个二叉树,返回它的 后序 遍历。 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 2 题解   二叉树的基本遍历方法之一。 递归方法: # Definition for a ...

qq_39378221的博客 217

多个MOS管并联应用场景的四大要点

动态运行时,阈值电压Vgsth最低的MOS管首先打开,最后关闭。这种MOS管一般会占据更多的开关损耗,并且在开关转换过程中,承担了更高的电应力。

VBsemi的博客 3752

LeetCode145 Binary Tree Postorder Traversal 二叉树后序遍历

Given a binary tree, return the postorder traversal of its nodes' values. Example: Input: [1,null,2,3] 1 \ 2 / 3 Output: [3,2,1] 题源:here;完整实现:here 后序遍历就是:左-&gt;右-&gt;root的遍历方式...

李歇特冯-兹拜因巴哈的博客 133

STM32F103/F407/H743不同GPIO速度配置(HAL库)对应的最高速度

详细介绍了STM32F103/F407/H743不同GPIO速度配置(HAL库)对应的最高速度。

kevin1499的博客 5592

撸毛笔记-电信营业厅 v5.03

电信营业厅 v5.03签到和完成部分金豆任务, 喂宠物7天,15天,28天连签抽奖, 宠物等级权益兑换自己设置电信的服务密码, 把 手机号#服务密码 填到变量里:每天运行一两次const $ = new Env("电信营业厅");

xiaoshun007的专栏 4497

(Java)leetcode-145 Binary Tree Postorder Traversal (二叉树的后序遍历)

后序遍历的迭代解法。

不思量 3239

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Leetcode145. Binary Tree Postorder Traversal二叉树的后序遍历

给定一个二叉树,返回它的后序遍历。 进阶:递归算法很简单,你可以通过迭代算法完成吗? 递归: class Solution { public: vector<int> res; vector<int> postorderTraversal(TreeNode* root) { ...

Ha12312的博客 251

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Leetcode 145. Binary Tree Postorder Traversal(非递归后序遍历二叉树)

Leetcode 145. Binary Tree Postorder Traversal(非递归后序遍历二叉树) 原题连接 分析 这题的关键在于如何非递归的后序遍历二叉树 关键在于 左右中 = reverse(中右左) 对比分析 先看看先序遍历 顺序是中 左 右 在递归算法里的顺序如下 print(root.val) visit(root.left) visit(root.right) ...

漂漂飘的博客 331

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

LeetCode 145 Binary Tree Postorder Traversal(二叉树后序遍历)

Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1 \ 2 / 3 return [3,2,1]. Note: Recursive solution is t

nudt_oys的博客 675

LeetCode 145: 二叉树的后序遍历 Binary Tree Postorder Traversal

题目: 给定一个二叉树,返回它的 后序 遍历。Given a binary tree, return the postorder traversal of its nodes' ...

爱写Bug 211

LeetCode-145二叉树的后序遍历(Binary Tree Postorder Traversal)

LeetCode-145 Given a binary tree, return the postorder traversal of its nodes’ values. Example Input: [1,null,2,3]   1     \      2  &n...

V2beach的博客 201

LeetCode 145. 二叉树的后序遍历(Binary Tree Postorder Traversal)

145. 二叉树的后序遍历 145. Binary Tree Postorder Traversal 题目描述 给定一个二叉树,返回它的 后序 遍历。 LeetCode145. Binary Tree Postorder Traversal 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通...

weixin_30610755的博客 114

【LeetCode】 145. Binary Tree Postorder Traversal 二叉树的后序遍历(Hard)(JAVA)

【LeetCode】 145. Binary Tree Postorder Traversal 二叉树的后序遍历(Hard)(JAVA) 题目地址: https://leetcode.com/problems/binary-tree-postorder-traversal/ 题目描述: Given a binary tree, return the postorder traversal of i...

qq_16927853的博客 365

LeetCode 145. Binary Tree Postorder Traversal(二叉树后序遍历)

原题网址:https://leetcode.com/problems/binary-tree-postorder-traversal/ Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1

James Pan 611

LeetCode 145. Binary Tree Postorder Traversal 二叉树的后序遍历 C++

LeetCode 145. Binary Tree Postorder Traversal 二叉树的后序遍历 C++ Given a binary tree, return thepostordertraversal of its nodes' values. ...

weixin_30929195的博客 99

【LeetCode】145. Binary Tree Postorder Traversal-二叉树后序遍历

一、描述: 二、思路: 二叉树后序遍历:1访问左子树;2访问右子树;3访问根结点;如: 遍历后的结点序列中,最后一个结点是二叉树中的起始根结点; 递归实现,结点为空是递归结束条件。 三、代码: 1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 *...

aoyan1488的博客 161

leetcode 145 二叉树的后序遍历 Binary Tree Postorder Traversal python (迭代、递归)

所有Leetcode题目不定期汇总在 Github, 欢迎大家批评指正,讨论交流。 ''' Given a binary tree, return the postorder traversal of its nodes' values. Example: Input: [1,null,2,3] 1 \ 2 / 3 Output: [3,2,1] F...

Jasmine_dream 343

LeetCode:145. Binary Tree Postorder Traversal 二叉树的后序遍历(C语言)

题目描述: 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal ...

C/C++攻城狮 386

LeetCode 145. Binary Tree Postorder Traversal二叉树的后序遍历 (C++)

题目: Given a binary tree, return thepostordertraversal of its nodes' values. Example: Input:[1,null,2,3] 1 \ 2 / 3 Output:[3,2,1] Follow up:Recursive solution...

weixin_30838921的博客 114
上一篇: LeetCode 力扣 111. 二叉树的最小深度 minimum depth of binary tree
下一篇: LeetCode 力扣 459. 重复的子字符串 repeated substring pattern
Motongxue
博客等级 码龄8年 3950粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值