层次存储二叉树
来源:互联网 发布:windows ad域控 编辑:程序博客网 时间:2024/06/14 23:11
题目
有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等于500。
分析
利用last当前行最右指针,nlast表示下一行最右指针.
class TreePrinter {public: vector< vector<int> > printTree(TreeNode* root) { queue<TreeNode*> q; //广度遍历使用的队列 vector<vector<int>> ve; //存储在二维数组中 vector<int> row; //存储树的某一层 q.push(root); //根节点入队 TreeNode *last = root,*nlast = NULL; while(!q.empty()) { TreeNode* top = q.front(); q.pop(); row.push_back(top->val); if(top->left){ q.push(top->left); nlast = top->left; } if(top->right){ q.push(top->right); nlast = top->right; } if(last->val == top->val) { last = nlast; ve.push_back(row); row.clear(); } } }};
0 0
- 层次存储二叉树
- 二叉树层次建树.
- 层次遍历二叉树
- 层次遍历二叉树
- 二叉树层次遍历
- 二叉树 层次遍历
- 二叉树层次遍历
- 层次遍历二叉树
- 二叉树层次遍历
- 层次遍历二叉树
- 二叉树层次遍历
- 二叉树层次遍历
- 层次遍历二叉树
- 二叉树层次遍历
- 二叉树层次遍历
- 层次遍历 二叉树
- 层次遍历二叉树
- 层次遍历二叉树
- Android RecyclerView经常遇到不能显示数据或只显示一行数据的问题
- IIS中ftp设置指定的用户登录(三)
- Unity3D学习之射箭小游戏
- MYSQL \G 用法:查询结果按列打印
- 如何使用robots.txt及其详解(与蜘蛛的协议)
- 层次存储二叉树
- Android二级页面闪退一级页面的fragment重叠bug解决方法
- 前端优化 —— CheckBox 复选框点击过快导致选中旁边文字问题
- 网易云课堂-Java应用基础:入门篇-第1章编程题-1.温度转换(3分)
- mac磁盘清理
- 关于VerilogHDL中case语句的功能仿真与时序仿真不一致的疑问
- GridView使用
- 定时器
- php添加http头禁止浏览器缓存