void levelOrderTraversal(TreeNode* root)
时间: 2023-09-11 13:06:58 浏览: 95
`void levelOrderTraversal(TreeNode* root)` 是一个函数,用于对给定的二叉树进行层序遍历,并将遍历结果输出到标准输出流中。层序遍历是从二叉树的根节点开始,按照从上到下、从左到右的顺序遍历每个节点。
该函数的参数 `root` 表示二叉树的根节点指针,由于是对整棵树进行遍历,因此需要从根节点开始遍历。在函数内部,使用队列的方式,将当前节点加入队列中,然后依次遍历队列中的节点,并将其左右子节点加入队列中,直到队列为空为止。
示例代码如下:
```
void levelOrderTraversal(TreeNode* root) {
if (root == nullptr) {
return;
}
std::queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
TreeNode* cur = q.front();
q.pop();
std::cout << cur->val << " ";
if (cur->left != nullptr) {
q.push(cur->left);
}
if (cur->right != nullptr) {
q.push(cur->right);
}
}
}
```
该函数会先判断当前节点是否为空,如果为空则直接返回。否则,创建一个队列 `q`,将当前节点加入队列中。然后,使用 `while` 循环遍历队列,每次从队列中取出一个节点 `cur`,输出该节点的值,并将其左右子节点加入队列中。当队列为空时,遍历结束,函数返回。
阅读全文