leetcode - [6]Binary Tree Postorder Traversal
Given a binary tree, return the postorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3},
1
\
2
/
3
return [3,2,1].
思路:后序遍历是按照“左子树,右子树,根”的顺序访问元素。那么根或者其它父亲元素就要先压入栈,然后再弹出。
#include <iostream>
#include <algorithm>
#include <vector>
#include <stack> using namespace std; 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> res;
stack<TreeNode *> s;
if (!root) {
return res;
}
s.push(root);
while (!s.empty()) {
TreeNode *p = s.top(); s.pop();
res.push_back(p->val); if (p->right) {
s.push(p->right);
} if (p->left) {
s.push(p->left);
}
}
reverse(res.begin(), res.end());
return res;
}
}; int main(int argc, char *argv[]) {
TreeNode *p = new TreeNode();
p->right = new TreeNode();
p->left = new TreeNode(); Solution *solution = new Solution(); vector<int> res;
res = solution->postorderTraversal(p); vector<int>::iterator it;
for (it = res.begin(); it != res.end(); it++) {
cout << *it << endl;
} }
leetcode - [6]Binary Tree Postorder Traversal的更多相关文章
- (二叉树 递归) leetcode 145. Binary Tree Postorder Traversal
		Given a binary tree, return the postorder traversal of its nodes' values. Example: Input: [1,null,2, ... 
- C++版 - LeetCode 145: Binary Tree Postorder Traversal(二叉树的后序遍历,迭代法)
		145. Binary Tree Postorder Traversal Total Submissions: 271797 Difficulty: Hard 提交网址: https://leetco ... 
- LeetCode 145 Binary Tree Postorder Traversal(二叉树的兴许遍历)+(二叉树、迭代)
		翻译 给定一个二叉树.返回其兴许遍历的节点的值. 比如: 给定二叉树为 {1. #, 2, 3} 1 \ 2 / 3 返回 [3, 2, 1] 备注:用递归是微不足道的,你能够用迭代来完毕它吗? 原文 ... 
- [LeetCode] 145. Binary Tree Postorder Traversal 二叉树的后序遍历
		Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary ... 
- Java for LeetCode 145 Binary Tree Postorder Traversal
		Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary ... 
- leetcode 145. Binary Tree Postorder Traversal ----- java
		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 bina ... 
- LeetCode 145. Binary Tree Postorder Traversal 二叉树的后序遍历 C++
		Given a binary tree, return the postorder traversal of its nodes' values. Example: Input: [,,] \ / O ... 
- 【leetcode】Binary Tree Postorder Traversal
		题目: Given a binary tree, return the postorder traversal of its nodes' values. For example: Given bin ... 
随机推荐
- C#实现发送给QQ邮件
			最近在做一个通过点击忘记密码往用户邮箱中发邮件(邮件内容是一个超链接)点击进行修改的功能,发送原理,我们只是把邮件发送给smtp服务器,然后再由smtp服务器发送到邮箱,发送之前要校验一下. 1.微软 ... 
- 比特币测试网络搭建以及RPC服务开启-配置注意事项
			.bitcoin QA Test环境 启动指定参数: "C:\Program Files (x86)\Bitcoin\bitcoin-qt.exe" -testnet -serve ... 
- tiny4412  启动方式
			1.iROM(BL0):是指Exynos4412的iROM中固化的启动代码,其作用是初始化系统时钟,设置看门狗,初始化堆和栈,加载8kb的bl1到Exynos4412的一个64kb大小内部sram(I ... 
- 前端基础之BOM和DOM     day52
			前端基础之BOM和DOM 前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互 ... 
- Java并发-ConcurrentModificationException原因源码分析与解决办法
			一.异常原因与异常源码分析 对集合(List.Set.Map)迭代时对其进行修改就会出现java.util.ConcurrentModificationException异常.这里以ArrayList ... 
- HTTP.ResponseCode
			HTTP响应码: http://blog.csdn.net/cutbug/article/details/4024818 
- Hive 系列(二)权限管理
			Hive 系列(二)权限管理 一.关于 Hive Beeline 问题 启动 hiveserver2 服务,启动 beeline -u jdbc:hive2:// 正常 ,启动 beeline -u ... 
- Internet
			0x01 URL的解析/反解析/连接 解析 urlparse()--分解URL # -*- coding: UTF-8 -*- from urlparse import urlparse url = ... 
- wifi功能模块
			1. API 10 Android2.3.3 不支持wifi代理设置. 2017-09-29 原来addOrUpdateNetwork之前,wifi配置并不会立即生效,要想立即生效,就要 wifiMa ... 
- Tomcat优化详细1
			在Tomcat和应用程序进行了压力测试后,如果您对应用程序的性能结果不太满意,就可以采取一些性能调整措施了,当然了前提是应用程序没有问题,我们这里只讲Tomcat的调整.由于Tomcat的运行依赖于J ... 
