二叉树后序遍历递归与非递归实现
来源:互联网 发布:java数字证书开发源码 编辑:程序博客网 时间:2024/05/22 14:40
//后序遍历(递归)void postTraverse(TreeNode* node){if (node){postTraverse(node->left);postTraverse(node->right);cout << node->val << endl;}}//后序遍历(非递归)void postTraverse2(TreeNode* node){if (node == NULL)cout << "empty!" << endl;else{stack<TreeNode*> s;stack<int> v; // 因为有些结点需要访问两次,所以设置一个标志位while (node){s.push(node);v.push(0);root = root->left;}while (!s.empty()){root = s.top();while (root->right && v.top() == 0){ //v.top() == 0 表示访问了一次v.pop();v.push(1);root = root->right;s.push(root);v.push(0);while (root->left){s.push(root->left);v.push(0);root = root->left;}}root = s.top();cout << root->val << endl;s.pop();v.pop();}}}
阅读全文
0 0
- 二叉树后序遍历递归与非递归实现
- 二叉树三种遍历方式的递归与非递归实现
- Java实现二叉树的递归与非递归遍历
- 二叉树三种遍历方式 递归与非递归实现
- 二叉树三种遍历方式 递归与非递归实现 总结
- 二叉树的递归遍历与非递归算法实现
- 二叉树的递归遍历与非递归算法实现
- 递归与非递归实现二叉树的遍历
- 二叉树遍历递归与非递归实现
- 二叉树的递归与非递归遍历实现
- 二叉树遍历的递归与非递归实现
- 二叉树递归与非递归遍历实现
- 二叉树遍历(递归与非递归实现)
- 【C++】二叉树遍历--递归与非递归实现
- 二叉树三种遍历方法的递归与非递归实现
- 二叉树遍历的递归与非递归实现
- 二叉树后序遍历非递归实现
- 二叉树后序遍历非递归实现
- sql 常用函数
- 【CryptoKitties源码解析】养猫的正确姿势!
- Letsencrypt通过DNS TXT记录来验证域名有效性
- Python Queue详解
- C语言实现冒泡排序
- 二叉树后序遍历递归与非递归实现
- 转载-Git常用命令
- Kotlin 的一些实用小技巧
- spring 异常处理
- 普及练习场 简单的模拟 机器翻译
- 微信支付遇到的问题
- CSS3(十二)
- Spring Cloud(六)服务网关 zuul 快速入门
- Spring基础之IoC