二叉树的后序遍历

后序遍历:左 - 右 - 根

递归版本

  • 注意递归的结束条件 root == null
  • 按照遍历的顺序每次遇到root将答案压入结果数组中去
var postorderTraversal = function(root) {const res = [];dfs(root);return res;function dfs(root) {if (root == null) return;dfs(root.left);dfs(root.right);res.push(root.val);}
};

迭代版本

后序: 左 右 根
前序: 根 左 右
按照前序遍历的顺序,然后再翻转一下即可……

var postorderTraversal = function(root) {const res = [], stack = [];while (root || stack.length) {while (root) {res.push(root.val);stack.push(root);root = root.right;}root = stack.pop();root = root.left;}return res.reverse();
};

考过

后序遍历二叉树(迭代 vs 递归)相关推荐

  1. 【LeetCode笔记】94 144 145. 二叉树的前序、中序、后序遍历的迭代与递归(Java、dfs、迭代)

    文章目录 一. 题目描述 二. 代码 & 思路 1. 递归的写法 2. 迭代的写法(本文重点来了) 1) 前序 2) 中序 3) 后序 直接来个整合吧,也方便看.之前只写了递归的,现在补上迭代 ...

  2. 二叉树的层序遍历和前中后序遍历代码 迭代/递归

    二叉树的层序遍历和前中后序遍历代码 迭代/递归 只记录代码.思路参考代码随想录:https://github.com/youngyangyang04/leetcode-master/blob/mast ...

  3. 002 前、中、后序遍历二叉树(递归迭代)

    1.递归法 ① 前序遍历二叉树 ② 中序遍历二叉树 ③ 后序遍历二叉树 2.迭代法 ① 前序遍历二叉树 ② 中序遍历二叉树 ③ 后序遍历二叉树 类似前序遍历,先"中→右→左"遍历二 ...

  4. 非递归先、中、后序遍历二叉树(C语言)

    文章目录 前言 一.二叉树非递归遍历算法 1.先序遍历 2.中序遍历 3.后序遍历 二.完整程序 三.运行结果实例 前言 本程序采用C语言编写,栈和二叉树的基本操作函数基于严蔚敏老师的<数据结构 ...

  5. 非递归后序遍历二叉树总结(2种方法)

    算法 非递归后序遍历二叉树总结(2种方法) @author:Jingdai @date:2020.12.04 传送门 非递归先序遍历二叉树 非递归中序遍历二叉树 方法1 非递归用栈来辅助遍历,后序遍历 ...

  6. 数据结构-----后序遍历二叉树非递归算法(利用堆栈实现)

    一.非递归后序遍历算法思想 后序遍历的非递归算法中节点的进栈次数是两个,即每个节点都要进栈两次,第二次退栈的时候才访问节点. 第一次进栈时,在遍历左子树的过程中将"根"节点进栈,待 ...

  7. php循环方法实现先序、中序、后序遍历二叉树

    二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree). <?phpnam ...

  8. //数据结构:先序、中序、后序遍历二叉树。输入数据:abd##eg###c#f#h##

    //数据结构:先序.中序.后序遍历二叉树.输入数据:abd##eg###c#f#h## #include <stdio.h> #include <stdlib.h> //定义数 ...

  9. 中序遍历二叉树的非递归实现(利用栈)

    中序遍历二叉树的非递归实现 之前的博客写了递归的实现,说白了也就是不断自己调用自身,保持左根右的顺序.只需写出整体逻辑结构,程序会自己递归复杂的过程,大体即为: void inTraverseByRe ...

最新文章

  1. 新手探索NLP(十一)——知识图谱
  2. nginxtomca负载均衡
  3. js 中location 的学习
  4. linux系统键盘记录器,可截获到 QQ 密码 键盘记录器源码
  5. 状态机——protothreads
  6. 作者:张国惠(1978-),男,美国新墨西哥大学土木工程系助理教授、博士生导师。...
  7. 电脑和树莓派之间文件传输
  8. vue怎么根据id获取组件_vue子组件,如何根据父组件传进来的id,去查询详情,并在子组件中显示?...
  9. python工资高还是java-Python工资高还是Java?
  10. 阿里矢量图标库 - Unicode 方式使用说明(两种用法)
  11. js获取IP地址方法总结
  12. 苹果电脑在哪里改计算机id,苹果MAC电脑如何更改ID账号
  13. Web前端html表格制作
  14. 商品进销差价_商品进销差价如何计算及账务处理怎么做?
  15. 银河帝国----基地与地球
  16. 雪花飘落代码java_个人网站html5雪花飘落代码JS特效下载
  17. 华为鸿蒙会没有广告,为什么华为会选择不做任何预告突然发布鸿蒙系统?
  18. MySQL语句和命令大全
  19. 从消息推送来看,华为、小米做得最好
  20. 西工大计算机学院二级教授,计算机学院高武教授:践行科研育人,培养拔尖创新人才...

热门文章

  1. Python机器学习——如何shuffle一个数据集(ndarray类型)
  2. 在现有集群环境下动态增加(下架)新的节点
  3. linux创建空镜像,Docker创建base镜像
  4. php 无刷新上传,php 无刷新上传文件的代码
  5. 从零开始学习python编程-Python3.5从零开始学 PDF 下载
  6. python项目开发实例-有趣的十个Python实战项目,让你瞬间爱上Python!
  7. python和java哪个好学-Java VS Python 应该先学哪个?
  8. 普通人学python有啥用-学习Python到底有什么用?
  9. 零基础学python图文版-零基础学Python(图文版)
  10. 什么是语音技术及其应用?语音识别的研究意义与进展