一、题目
广度优先遍历:(Breadth First Search)
又叫层次遍历,从上往下对每一层依次访问,在每一层中,从左往右(也可以从右往左)访问结点,访问完一层就进入下一层,直到没有结点可以访问为止。又叫层次遍历,从上往下对每一层依次访问,在每一层中,从左往右(也可以从右往左)访问结点,访问完一层就进入下一层,直到没有结点可以访问为止。上面二叉树的遍历顺序为:ABCDEFG.。
因此广搜的步骤符合队列先进先出的思想,可以利用队列实现广度优先搜索。
二、代码
class Solution {
public:
void BreadthFirstSearch(TreeNode *root)
{
queue<TreeNode*> nodeQueue;
nodeQueue.push(root);
while (!nodeQueue.empty())
{
TreeNode *node = nodeQueue.front();
cout << node->val << ' ';
nodeQueue.pop();
if (node->left)
{
nodeQueue.push(node->left);
}
if (node->right)
{
nodeQueue.push(node->right);
}
}
}
};
参考: