二叉树的非递归遍历
来源:互联网 发布:管家婆软件单机免费版 编辑:程序博客网 时间:2024/06/03 22:57
Pre Order Traverse
vector<int> preorderTraversal(TreeNode* root) {vector<int> res;std::stack<TreeNode*> temp;while (root || !temp.empty()) {while (root) {temp.push(root);res.push_back(root->val);root = root->left;}root = temp.top();temp.pop();root = root->right;}return res;}
In Order Traverse
vector<int> inorderTraversal(TreeNode* root) {vector<int> res;std::stack<TreeNode*> temp;while (root || !temp.empty()) {while (root) {temp.push(root);root = root->left;}root = temp.top();temp.pop();res.push_back(root->val);root = root->right;}return res;}
Post Order Traverse
vector<int> postorderTraversal(TreeNode* root) {vector<int> res;std::stack<TreeNode*> temp;while (root || !temp.empty()) {while (root) {temp.push(root);res.insert(res.begin(),root->val);root = root->right;}root = temp.top();temp.pop();root = root->left;}return res;}
以上是我自己c++版本的实现
另附一篇比较详细的博客:http://www.cnblogs.com/dolphin0520/ 0 0
- 二叉树的递归,非递归遍历
- 二叉树的递归+非递归遍历
- 二叉树的递归非递归遍历
- 二叉树的遍历--递归+非递归
- 二叉树的递归、非递归遍历
- 二叉树的递归非递归遍历
- 二叉树的先中后序遍历,递归遍历,非递归遍历
- 二叉树的递归遍历与非递归遍历
- 二叉树的创建,递归遍历,非递归遍历
- 二叉树的递归遍历与非递归遍历
- 二叉树的非递归遍历以及递归遍历
- 二叉树的非递归遍历&递归遍历
- 二叉树的递归遍历和非递归遍历
- 二叉树的递归遍历与非递归遍历
- 二叉树的递归遍历和非递归遍历
- 二叉树的构造,递归遍历,非递归遍历
- 二叉树的遍历(递归+非递归+层次遍历)
- 二叉树的递归遍历与非递归遍历
- MFC C++ Format 16进制输出时需要注意的一点
- Learning to Rank中Pointwise关于PRank算法源码实现
- GDOI2016总结
- Fragment使用笔记
- Fragment 中的onConfigurationChanged 在切换语言的情况下不被回调的解决办法
- 二叉树的非递归遍历
- android view用动画实现遮罩效果
- zabbix 添加主机接口
- IOS 在一个应用里打开另一个应用 及其 两个应用互相调用
- android数据库存储
- Fast RCNN 训练自己数据集 (2修改数据读取接口)
- iOS NSString和NSDate转换
- 发布Android studio项目到本地Maven仓库
- Oc与Swift混编------如何创建头文件(桥接)