二叉树的遍历(非递归形式)
来源:互联网 发布:mac 编译安装php5.6 编辑:程序博客网 时间:2024/06/05 11:32
前序遍历
//非递归 vector<int>result; vector<int> preorderTraversal(TreeNode *root) { // write your code here if (root == NULL) { return result; } stack<TreeNode *>Stack; Stack.push(root); while(!Stack.empty()) { TreeNode *topNode = Stack.top(); Stack.pop(); result.push_back(topNode->val); if(topNode->right != NULL) { Stack.push(topNode->right); } if(topNode->left != NULL) { Stack.push(topNode->left); } } return result; }中序遍历
//非递归操作 vector<int>result; vector<int> inorderTraversal(TreeNode *root) { // write your code here stack<TreeNode *>Stack; TreeNode *cur = root; while(cur != NULL || !Stack.empty()) { while(cur != NULL) { Stack.push(cur); cur = cur->left; } cur = Stack.top(); Stack.pop(); result.push_back(cur->val); cur = cur->right; } return result; }后序遍历
//非递归 vector<int>result; vector<int> postorderTraversal(TreeNode *root) { // write your code here if (root == NULL) { return result; } stack<TreeNode *>Stack; Stack.push(root); while(!Stack.empty()) { TreeNode *topNode = Stack.top(); result.push_back(topNode->val); Stack.pop(); if (topNode->left) { Stack.push(topNode->left); } if (topNode->right) { Stack.push(topNode->right); } } reverse(result.begin(),result.end()); return result; }
阅读全文
0 0
- 二叉树的遍历非递归形式
- 二叉树的遍历(非递归形式)
- 二叉树三种遍历的非递归形式
- 二叉树前序中序后序遍历的非递归形式
- 中序遍历二叉树的非递归形式
- 二叉树的非递归统一遍历形式
- 二叉树的前序遍历非递归形式
- 用递归和非递归的形式实现二叉树的前中后序遍历
- 树的遍历:非递归形式
- Lintcode 二叉树后序遍历 非递归形式
- 二叉树的前序、中序、后序遍历的算法(递归形式和非递归形式)
- 二叉树的递归,非递归遍历
- 二叉树的递归+非递归遍历
- 二叉树的递归非递归遍历
- 二叉树的遍历--递归+非递归
- 二叉树的递归、非递归遍历
- 二叉树的递归非递归遍历
- 二叉树的先中后序遍历,递归遍历,非递归遍历
- R语言基础知识
- 利用Mysql数据库存储账户信息,C#编写登录界面
- 读书的五个境界
- 使用aspose.words for java 进行多文档间的转换操作
- linux下文件乱码问题及编码方式
- 二叉树的遍历(非递归形式)
- “虚拟机”之 Centos的初步操作
- Spark学习之一-Spark的概念机器发展简史
- 2425: [HAOI2010]计数
- spring cloud
- 2018阿里秋招C/C++研发编程题——字符串处理
- java基础第二十一天 JDK新特性 反射
- ALV字段编辑时,输入长度受限制解决方法
- Spark学习之二-Spark入门