leetcode

LeetCode算法-145. 二叉树的后序遍历

145. 二叉树的后序遍历

题目

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

示例:

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

输出: [3,2,1]

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

Java

// 递归//    public List postorderTraversal(TreeNode root) {//        List list = new ArrayList<>();//        postorder(root, list);//        return list;//    }//    public void postorder(TreeNode root, List list) {//        if (root == null) return;//        postorder(root.left, list);//        postorder(root.right, list);//        list.add(root.val);//    }

// 迭代public List postorderTraversal(TreeNode root) {    LinkedList output = new LinkedList<>();if (root == null) {return output;    }    LinkedList stack = new LinkedList<>();    stack.add(root);while (!stack.isEmpty()) {        TreeNode node = stack.pollLast();        output.addFirst(node.val);if (node.left != null) {            stack.add(node.left);        }if (node.right != null) {            stack.add(node.right);        }    }return output;}

C++

vector<int> postorderTraversal1(TreeNode *root) {    vector<int> v;    vector stack;if (root) {stack.push_back(root);    }while (stack.size()>0){        TreeNode *n = stack.back();stack.pop_back();        v.push_back(n->val);if (n->left){stack.push_back(n->left);        } if (n->right) {stack.push_back(n->right);        }    }std::reverse(v.begin(), v.end());  // the trickreturn v;}

更多干货文章

博客:www.qiuxuewei.com
微信公众号:「@开发者成长之路」

「一个没有鸡汤只有干货的公众号」


二叉树后序遍历_LeetCode算法145. 二叉树的后序遍历相关推荐

  1. 二叉树 php,PHP数据结构与算法:二叉树

    一.定义 二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree) . 二.特性 ...

  2. 数据结构与算法之二叉树的先序遍历,中序遍历,后序遍历

    数据结构与算法之二叉树的先序遍历,中序遍历,后移遍历 目录 实现二叉树的先序,中序,后序遍历,包括递归方式和非递归方式 在二叉树中找到一个节点的后继节点 1. 实现二叉树的先序,中序,后序遍历,包括递 ...

  3. 数据结构与算法实验 实验6:二叉树ADT的二叉链式实现 (由完全前序序列创建二叉树 / 求二叉树的节点数/树高/叶子节点数 /先序中序后序层序遍历)

    假设二叉数的数据元素为字符,采用二叉链式存储结构.请编码实现二叉树ADT,其中包括创建二叉树.遍历二叉树(深度.广度).求二叉树的深度(高度).计算二叉树的元素个数.计算二叉树的叶子数.二叉树的格式输 ...

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

    一.题目描述: 144. 二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 后序遍历. . 二.题解 对二叉树不了解的,可以先看第三部分的分析 /*** Definition for ...

  5. 实现一个二叉树层级遍历_算法总结:左神class5—二叉树递归和非递归实现遍历(后序用一个栈彩蛋)...

    二叉树类型的题目为常考题型 1.能够结合队列.栈.链表.字符串等很多数据结构. 2.需要掌握图的基本遍历方式,比如BFS和DFS. 3.需要掌握递归函数的使用,并自己设计出递归过程. 4.与实际工作结 ...

  6. 【数据结构笔记10】二叉树的先序、中序、后序遍历,中序遍历的堆栈/非递归遍历算法,层序遍历,确定一个二叉树,树的同构

    本次笔记内容: 3.3.1 先序中序后序遍历 3.3.2 中序非递归遍历 3.3.3 层序遍历 3.3.4 遍历应用例子 小白专场:题意理解及二叉树表示 小白专场:程序框架.建树及同构判别 文章目录 ...

  7. python数据结构与算法:二叉树及三种遍历方式(先序遍历/中序遍历/后序遍历)

    树的实现采用queue的形式: 树的三种遍历方式(广度优先白能力法):先序遍历(根左右),中序遍历(左根右)以及后序遍历(左右根) ######################P6.4 数据结构### ...

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

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

  9. 由任意二叉树的前序遍历序列和中序遍历序列求二叉树的思想方法_算法与数据结构基础 - 二叉树(Binary Tree)...

    二叉树基础 满足这样性质的树称为二叉树:空树或节点最多有两个子树,称为左子树.右子树, 左右子树节点同样最多有两个子树. 二叉树是递归定义的,因而常用递归/DFS的思想处理二叉树相关问题,例如Leet ...

最新文章

  1. 近些年有哪些口碑炸裂的项目管理工具?各具特色的项目管理工具我们该如何选择?
  2. CSS3绘制圆角矩形的简单示例
  3. 如何使用意图将对象从一个Android活动发送到另一个?
  4. 对于 APM 用户的一次真实调查分析(下)
  5. python导入数据库的数据怎么在qt界面里刷新_Python中使用pyqtgraph库实现数据可视化之逐点刷新波形图...
  6. python 运算符重载_一锅类似函数重载的小杂烩
  7. [转载]备忘:oh my zsh 的安装、更新、删除
  8. 全球与中国弹簧探针市场深度研究分析报告(2022)
  9. 数据可视化案例(六)——智慧医院数据可视化
  10. vue 手写签名_真正的艺术签名!让你的名字充满明星范!
  11. 简约网站维护单页html源码
  12. 如何保持session一致性?
  13. luci网页shell_修改Luci界面
  14. 数据库中的 “行式存储”和“列式存储”
  15. QT选择目录等常用文件/文件夹操作
  16. 物联网知识之了解MOTT
  17. 三角形主机linux,受热捧的三角形主机是什么?我来为你解析
  18. linux 无法使用pstree命令
  19. 3万字干货HTML+CSS入门指南(建议收藏)
  20. Jzoj4894 SJR的直线

热门文章

  1. 去掉a标签下划线_条码软件如何修改条码标签的字体格式
  2. 个人计算机使用的标准键盘,计算机键盘的基本用法!
  3. python 虚拟环境 django.db 报错_jumpserver一体化安装
  4. uniapp点击图片放大_想要放大镜将图片放大的效果?你只需这么做即可!
  5. lrange是取出所有值并移除么_美欧日站点亚马逊物流库存绩效指标分数达标值将降低为 450...
  6. java object.getclass_Java Object getClass() 方法
  7. 计算机单片机英语书籍推荐,英语翻译近十几年来,单片机作为微计算机一个很重要的分支,应用广泛,发展迅速,已经对人类社会产生了深远的影响.本文介绍了基...
  8. Scrapy爬虫基本使用
  9. 机器学习系统设计——误差矩阵
  10. postfix导致maillog填满磁盘空间的巨坑!