LintCode_68 二叉树后序遍历
题目
给出一棵二叉树,返回其节点值的后序遍历。
思路
后序比较麻烦 需要另外一个变量来记录当前节点入栈的次数
设计pair<TreeNode*, int> p;
p.first 为二叉树节点
p.second 为当前节点入栈的次数
C++代码
vector<int> postorderTraversal(TreeNode *root) {
// write your code here
vector<int> vec;
stack<pair<TreeNode*, int>> s;
s.push(make_pair(root,0));
while(root && !s.empty())
{
TreeNode* p = s.top().first;
int times = s.top().second;
s.pop();
if(0 == times) //如果第一次入栈
{
s.push(make_pair(p,1)); //第二次入
if(p->right) s.push(make_pair(p->right,0));
if(p->left) s.push(make_pair(p->left,0));
}
else vec.push_back(p->val);
}
return vec;
}
LintCode_68 二叉树后序遍历的更多相关文章
- 二叉树后序遍历的非递归算法(C语言)
首先非常感谢‘hicjiajia’的博文:二叉树后序遍历(非递归) 这篇随笔开启我的博客进程,成为万千程序员中的一员,坚持走到更远! 折磨了我一下午的后序遍历中午得到解决,关键在于标记右子树是否被访问 ...
- lintcode.68 二叉树后序遍历
二叉树的后序遍历 描述 笔记 数据 评测 给出一棵二叉树,返回其节点值的后序遍历. 您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返 ...
- LeetCode:145_Binary Tree Postorder Traversal | 二叉树后序遍历 | Hard
题目:Binary Tree Postorder Traversal 二叉树的后序遍历,题目要求是采用非递归的方式,这个在上数据结构的课时已经很清楚了,二叉树的非递归遍历不管采用何种方式,都需要用到栈 ...
- [Leetcode] Binary tree postorder traversal二叉树后序遍历
Given a binary tree, return the postorder traversal of its nodes' values. For example:Given binary t ...
- 剑指Offer的学习笔记(C#篇)-- 平衡二叉树(二叉树后序遍历递归详解版)
题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 一 . 题目分析 首先要理解一个概念:什么是平衡二叉树,如果某二叉树中任意的左右子树深度相差不超过1,那么他就是一颗平衡二叉树.如下图: 所以 ...
- 数据结构实验之求二叉树后序遍历和层次遍历(SDUT 2137)
Problem Description 已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历和层序遍历. Input 输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据. ...
- UVa 536 Tree Recovery(二叉树后序遍历)
Little Valentine liked playing with binary trees very much. Her favorite game was constructing rando ...
- 145. Binary Tree Postorder Traversal(二叉树后序遍历)
Given a binary tree, return the postorder traversal of its nodes' values. For example:Given binary t ...
- LeetCode 二叉树后序遍历(binary-tree-postorder-traversal)
Given a binary tree, return the postorder traversal of its nodes' values. For example:Given binary t ...
随机推荐
- html特殊字符 编码css3 content:"特殊符号"一览
工作中经常会用到用纯css3美化复选框 <div class="cross"></div> css代码.cross{ width: 20px; height ...
- jeeCMS首页加载流程
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/gyshun/article/details/79669293 如果JEECMS部署完毕之后,在浏览器 ...
- MySql存储过程批量删除多个数据库中同名表中的指定字段
1. 创建存储过程batchDeleteField:删除所有名称为"MyDB_"开头的数据库中的指定字段 -- ---------------------------- -- Pr ...
- host ngnix zull
1.浏览器解析域名:www.baidu.com 2.由本地host解析得到IP:127.0.0.1 3.向IP传递请求,IP所在PC的Ngnix监听80端口. 4.IP所以PC收到请求后,nginx由 ...
- struts2-OGNL表达式-OGNL与Struts2的结合
1 OGNL表达式 OGNL:对象视图导航语言. ${user.addr.name} 这种写法就叫对象视图导航.OGNL不仅仅可以视图导航.支持比EL表达式更加丰富的功能. 1.1 使用OGNL 导包 ...
- python的collections应用为字典哈希
import collections allNum=collections.defaultdict(int) allNum[1]+=1 allNum[5]+=1 print(allNum) 当然,de ...
- Redis 核心
一.Redis单机多实例原理 每个实例对应不同的配置文件,配置文件对应不同的端口.数据库文件位置.日志位置. 二.Redis单实例多数据库 每个Redis实例都有16个数据库,下标从0-15,当 se ...
- Liferay 7:Liferay内部博客地址
想要了解Liferay最新功能和特性,可以看一看. 非常实用,都是Liferay开发者写的: https://web.liferay.com/zh/community/blogs/all
- TZ_02MyBatis_lazy SqlMapConfig.xml
Mybatis的延迟加载又称为懒加载 mybatis在一对多的查询中,例如查询一个用户时需要查询这个用户下的所有账户信息,如果一次性的select * from user u left join ac ...
- win8 装的SQL Server2012 企业版
链接:ed2k://|file|cn_sql_server_2012_enterprise_edition_x86_x64_dvd_813295.iso|5054384128|BC78EFDC4005 ...