二叉树的层序遍历(非递归)
2016-11-09 19:26
162 查看
输出二叉树的层序遍历序列
如[2,6,8,null,null,10,12],输出[[2],[6,8],[10,12]]
另:若要逆序输出,即[[10,12],[6,8],[2]],则只需return前reverse(result.begin(),result.end());
Binary Tree Level Order Traversal
借助两个队列,一个记录当前层,一个记录下一层
依次插入二维vector
如[2,6,8,null,null,10,12],输出[[2],[6,8],[10,12]]
另:若要逆序输出,即[[10,12],[6,8],[2]],则只需return前reverse(result.begin(),result.end());
Binary Tree Level Order Traversal
借助两个队列,一个记录当前层,一个记录下一层
依次插入二维vector
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> result; if(root==NULL) return result; vector<int> level; queue<const TreeNode*> cur,next; const TreeNode *node=root; cur.push(node); while(!cur.empty()) { while(!cur.empty()) { node=cur.front(); cur.pop(); level.push_back(node->val); if(node->left) next.push(node->left); if(node->right) next.push(node->right); } result.push_back(level); level.clear(); swap(cur,next); } //reverse(result.begin(),result.end()); return result; } };
相关文章推荐
- 二叉树的遍历:前序、中序、后序、层序的非递归实现
- 二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现(转)
- JAVA下实现二叉树的先序、中序、后序、层序遍历(递归和循环)
- 【数据结构与算法】二叉树的遍历(递归遍历、非递归遍历、层序遍历)
- Java实现二叉树的前序、中序、后序、层序遍历(非递归方法)
- 括号法递归建立二叉树并层序遍历输出
- C++实现二叉树 前序遍历, 后序遍历, 中序遍历, 层序遍历(不用递归)
- 二叉树层序遍历的递归和非递归算法
- 用java实现二叉树相关操作(前序建树,前中后递归非递归遍历,层序遍历)
- <二叉树 前中后 层序 非递归遍历 c语言实现>
- 二叉树的创建,先序、中序、后序遍历的递归实现以及层序遍历
- 二叉树的遍历(前序、中序、后序、层序),递归和非递归实现
- 二叉树的层序遍历(递归与非递归)
- 二叉树的先序/中序/后序(递归、非递归)+层序遍历
- 非递归遍历二叉树的四种策略-先序、中序、后序和层序
- 二叉树的递归、非递归及层序遍历的Java实现
- 二叉树的创建、前序中序后序递归遍历与非递归遍历、层序遍历以及二叉树简单应用的C语言实现
- 二叉树先中后序遍历(递归、非递归方法)、层序遍历 Java实现
- c语言描述的二叉树的基本操作(层序遍历,递归,非递归遍历)
- 非递归遍历二叉树(先序、中序、后序、层序)