宽度优先搜索:树的层遍历
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root TreeNode类
* @return int整型
*/
int maxDepth(TreeNode* root) {
// write code here
if (!root)
return 0;
queue<TreeNode* > q;//定义一个双端队列
q.push(root);//将根结点存进去
int deep = 0;
while (!q.empty()) {
++deep;
int num = q.size();//队列的大小,方便进行判断
for (int i = 1; i <=num; ++i) {
TreeNode* p = q.front();//开头元素
q.pop();//出队列
if (p->left)
q.push(p->left);
if (p->right)
q.push(p->right);
}
}
return deep;
}
};
京公网安备 11010502036488号