一、题目

给定一个二叉树,返回他的后序遍历的序列。后序遍历是值按照 左节点->右节点->根节点 的顺序的遍历。

数据范围:二叉树的节点数量满足0≤n≤100 ,二叉树节点的值满足 1≤val≤100 ,树的各节点的值各不相同

二、递归方式

运行结果:

代码:

class Solution {
public:vector<int> postorderTraversal(TreeNode* root) {vector<int> ans;if(root == NULL) return ans;postOrder(root, ans);return ans;}void postOrder(TreeNode* root, vector<int>& ret){if(root == NULL) return ;postOrder(root->left, ret);postOrder(root->right, ret);ret.emplace_back(root->val);}
}; 

三、非递归方式(借助两个辅助栈)

运行结果:

代码:

class Solution {
public:vector<int> postorderTraversal(TreeNode* root) {vector<int> ans;if(root == NULL) return ans;stack<TreeNode*> st1;stack<TreeNode*> st2; //st2保存的就是中序遍历顺序序列TreeNode* p = root;st1.push(p);while(!st1.empty()){p = st1.top();st2.push(p);st1.pop();if(p->left){st1.push(p->left);}if(p->right){st1.push(p->right);}}while(!st2.empty()){ans.emplace_back(st2.top()->val);st2.pop();}return ans;}
}; 

二叉树的后序遍历-C++两种方式-牛客BM25相关推荐

  1. Java~二叉树的前中后序遍历的几种方式(递归法,迭代法,标记法等)

    目录 一.结点的定义 二.递归法遍历二叉树 前序遍历 中序遍历 后序遍历 三.迭代(非递归)遍历二叉树 (1).迭代模拟法 前序遍历 中序遍历 后序遍历 (2).空指针标记法 前序遍历 中序遍历 后序 ...

  2. 非递归遍历二叉树(后序遍历)

    非递归遍历二叉树(后序遍历) 在二叉树的遍历中,分为递归遍历与非递归遍历.非递归遍历的执行效率较高,时间复杂度小,因此采用非递归遍历有利于提高代码运行效率. //后序遍历非递归实现 void Post ...

  3. 二叉树后序遍历的四种方法

    在二叉树三种顺序的遍历中,后序遍历相对较麻烦一些,其实对于递归方法来说,三种方法大同小异,思路与实现都很简单.后序遍历的迭代法与Morris方法比较麻烦.这里介绍后序遍历的四种方法,其实还是递归.迭代 ...

  4. 刻意练习:LeetCode实战 -- 二叉树的后序遍历

    背景 今天,第二期基础算法(Leetcode)刻意练习训练营 的打卡任务是二叉树的中序遍历,由于二叉树的遍历方式通常来说有四种:前序遍历.中序遍历.后序遍历以及层次遍历,而LeetCode也有二叉树的 ...

  5. LeetCode-145:二叉树的后序遍历

    题目描述: 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3]      1     \      2     /    3 输出: [3,2,1] 思路分析: 递归法: ...

  6. 二叉树的后序遍历(C语言)

    首先我们从两个方面讲解二叉树的后序遍历(递归+迭代) 一.二叉树的后序遍历.(递归) 思想: 首先我们从二叉树的根节点开始先遍历其左孩子,①接着同样继续遍历其左孩子的左孩子,直到某个左孩子节点的左孩子 ...

  7. [LeetCode] Binary Tree Postorder Traversal 二叉树的后序遍历

    Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary ...

  8. 算法练习day10——190328(二叉树的先序、 中序、 后序遍历, 包括递归方式和非递归方式、找到一个节点的后继节点、二叉树的序列化和反序列化)

    1.实现二叉树的先序. 中序. 后序遍历, 包括递归方式和非递归方式 1.1 访问节点的顺序 节点访问顺序如下图所示: 访问顺序:1 2 4 4 4 2 5 5 5 2 1 3 6 6 6 3 7 7 ...

  9. 二叉树的后序遍历(递归和非递归)

    二叉树的后序遍历 后序遍历(LRD)是二叉树遍历的一种,也叫做后根遍历.后序周游,记为左右根,简记:左右根. 步骤(非递归): ⼆叉树的后序遍历顺序是左-右-根.在这里仍然采用棧来进行辅助,具体步骤如 ...

最新文章

  1. 《统一沟通-微软-实战》-7-配置-3-响应组
  2. #113. 【UER #2】手机的生产
  3. Linux Kernel TCP/IP Stack — Overview
  4. AI开发者大会之计算机视觉技术实践与应用:2020年7月3日《RPA+AI助力政企实现智能时代的人机协同》、《5G风口到来,边缘计算引领数据中心变革》、《数字化时代金融市场与AI算法如何结合?》
  5. html 调入网页,HTML 文件怎么从外部调入 HTML 模板(如头部,页尾这些公共的部分)?...
  6. c语言 getchar_C语言gets输入问题
  7. hdu 5621 KK's Point(数学,推理题)
  8. vue安装less并全局引入less/sass文件
  9. day13 生成器 三元运算 列表解析
  10. 带有API网关的AWS Lambda
  11. 大学计算机专业高考听力,高考英语听力测试对考生听力策略反拨作用的研究
  12. 鸿蒙适配倒计时,华为鸿蒙OS2.0手机系统定档 鸿蒙OS2.0上线倒计时
  13. 业界分享 | 数据科学家工作融入及面试技巧
  14. Eclipse编辑HTML,JSP,JS等时的卡顿问题,非常有效!!!
  15. Ubuntu20.04安装教程
  16. 我在南大的七年(刘未鹏先生)
  17. 移动硬盘连接电脑提示格式化解决方法
  18. 了解如何在Microsoft Word中使用导航窗格
  19. Google 发布2018年Android平台新政策,终于强硬了一回!
  20. 对对碰 代码 android,iOS分段选择器、旅行App、标度尺、对对碰小游戏、自定义相册等源码...

热门文章

  1. Simpler is Better
  2. 不管多少工资,有的公司劳动合同上都写2100,为什么这么操作?
  3. ARM汇编 常见条件判断对应NZCV标识 以及 TST / TBZ / TBNZ 指令
  4. WEB入门.八 背景特效
  5. 数据结构-索引-理论
  6. 总用kill -9杀进程,知道9代表什么吗?
  7. python用minimize() 函数替代matlab的fmincon函数
  8. Mercury——又一个 MSN 谈天序次递次
  9. 内网穿透—利用frp和Pia云俄罗斯超低价服务器进行家用电脑内网穿透
  10. DreamMail的DmData.dao文件损坏的解决方法