题目链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal/

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

示例:

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

输出: [3,2,1]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?

/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<int> postorderTraversal(TreeNode* root) {
vector<int> result;
if(root==nullptr) return result;
stack<TreeNode*> s;
TreeNode *p=root,*r=nullptr;
while(p||!s.empty()){
if(p){
s.push(p);
p=p->left;
}else{
p=s.top();
if(p->right&&p->right!=r){
p=p->right;
}else{
s.pop();
result.push_back(p->val);
r=p;
p=nullptr;
}
// if(p->right==nullptr||p->right==r){
// s.pop();
// result.push_back(p->val);
// r=p;
// p=nullptr;
// }else{
// p=p->right;
// }
}
}
return result;
}
};

最新文章

  1. SqlServer--查询案例
  2. ASP.NET连接数据库时,提示“用户 &#39;sa&#39; 登录失败原因: 未与信任 SQL Server 连接相关联
  3. visual studio生成后调试启动又提示部分项目需要生成问题总结
  4. [转]jQuery.validate插件在失去焦点时执行验证代码
  5. [转载]MCU DSP ARM 嵌入式 之间的区别
  6. 动态时间规整(DTW) 转载
  7. xcode解决问题dyld: Library not loaded
  8. hdu1501 动态规划
  9. centos 安装ecshop出现date错误
  10. 【mysql】【分组】后取每组的top2
  11. Hadoop 中 Eclipse 的配置
  12. [IOS]本地化
  13. java_Eclipse自动生成作者、日期注释等功能设置_导入 xml方式
  14. 读取的XML节点中带有冒号怎么办?
  15. Android开发学习资源
  16. APPLE-SA-2019-3-25-5 iTunes 12.9.4 for Windows
  17. java内存问题排查及分析
  18. 突破内网限制上网(ssh+polipo)
  19. SpringMVC获取页面表单参数的几种方式
  20. Linux 机器的渗透测试命令备忘表

热门文章

  1. 时序数据库 Apache-IoTDB 源码解析之前言(一)
  2. DOCKER 学习笔记7 Docker Machine 在阿里云实例化ECS 以及本地Windows 实例化虚拟机实战
  3. WTL Hello World
  4. 开源镜像站-Android镜像
  5. Java中的8种基本数据类型
  6. Deep Learning for Chatbots(Introduction)
  7. PC微信逆向--实现消息防撤回
  8. 跨域的两种解决方法jsonp和CORS
  9. hive on spark 编译时遇到的问题
  10. centos7.5下yum安装nginx-1.14.2