LintCode-68.二叉树的后序遍历
2024-10-21 17:35:21
二叉树的后序遍历
给出一棵二叉树,返回其节点值的后序遍历。
样例
给出一棵二叉树 {1,#,2,3},
返回 [3,2,1]挑战
你能使用非递归实现么?
标签
递归 二叉树 二叉树遍历
code
/**
* Definition of TreeNode:
* class TreeNode {
* public:
* int val;
* TreeNode *left, *right;
* TreeNode(int val) {
* this->val = val;
* this->left = this->right = NULL;
* }
* }
*/
class Solution {
/**
* @param root: The root of binary tree.
* @return: Postorder in vector which contains node values.
*/
public:
vector<int> postorderTraversal(TreeNode *root) {
// write your code here
vector<int> order;
if(root == NULL)
return order;
stack<TreeNode*> s;
TreeNode *cur; //当前结点
TreeNode *pre=NULL; //前一次访问的结点
s.push(root);
while(!s.empty()) {
cur=s.top();
//如果当前结点没有孩子结点或者孩子节点都已被访问过
if((cur->left==NULL&&cur->right==NULL)|| (pre!=NULL&&(pre==cur->left||pre==cur->right))) {
order.push_back(cur->val);
s.pop();
pre=cur;
}
else {
if(cur->right!=NULL)
s.push(cur->right);
if(cur->left!=NULL)
s.push(cur->left);
}
}
return order;
}
};
最新文章
- iphone 尺寸and字体
- Vue2.X的路由管理记录之 钩子函数(切割流水线)
- 【HTML5】浅析html使用SSE(Server-Sent Events)连接JSP
- POJ 2876 Cantoring Along
- 更新win7资源管理器
- clrscr( )用法
- USACO Chapter 1 解题总结
- URAL 1727. Znaika&;#39;s Magic Numbers(数学 vector)
- Java虚拟中内存分块
- Django signals机制的几个简单问题
- shell脚本-正则、grep、sed、awk
- (55)Wangdao.com第八天_JavaScript 字符串中使用 \u 输出Unicode字符
- 无需脑图 无需思维导图 看Word大纲视图
- Git使用:Linux(Ubuntu 14.04 x64)下安装Git并配置连接GitHub
- 客户端负载均衡Feign之三:Feign补充
- 项目构建工具gradle
- MyEclipse:详细使用教程
- Java实现各种内部排序算法
- 通过Class类获取对象实例
- Spring Boot 学习资料【m了以后看】(转)