二叉树的遍历(4):层次遍历
2015-06-04 10:50
281 查看
#include <iostream> #include <stack> #include <queue> using namespace std; typedef int TreeNodeElem; struct TreeNode { TreeNode* left; TreeNode* right; TreeNodeElem elem; }; //层次遍历 void levelOrder(TreeNode* root, int(*visit)(TreeNode*)) { TreeNode* p = root; queue<TreeNode*> q; if (p != nullptr) { q.push(p); } while (!q.empty()) { p = q.front(); q.pop(); visit(p); if (p->left != nullptr) { q.push(p->left); } if (p->right != nullptr) { q.push(p->right); } } }
相关文章推荐
- pidstat详解
- POJ 2031 Building a Space Station (最小生成树)
- 相关题目
- Binary Tree Level Order Traversal II
- 编译时所需的文件(包含头文件和库文件)使用方法
- swift基础语法之控件使用02
- onDraw dispatchDraw
- 如何避免IE浏览器自动升级到版本11
- C#实现窗口之间的传值
- js便利对象属性
- 谷歌扩展包使用教程
- <数据结构学习与实验指导>2-12两个有序链表序列的交集/2-13两个有序序列的中位数
- PaintCode 教程:矢量图轻松转换成CoreGraphics代码
- iOS捕获异常,常用的异常处理方法
- js de四舍五入
- s:date使用format后出现错误的时间
- 从零搭建mongo分片集群的简洁方法
- BZOJ1879 Bill的挑战
- UIView常用的一些方法小记之setNeedsDisplay和setNeedsLayout
- 手机银行爆发式增长 如何保证应用性能不卡顿