二叉树的层次遍历代码c++
时间: 2024-12-07 21:12:40 浏览: 5
二叉树的层次遍历(也称为广度优先搜索,BFS)是一种逐层访问二叉树节点的方法。通常使用队列来实现层次遍历。以下是一个使用C++实现的二叉树层次遍历代码示例:
```cpp
#include <iostream>
#include <queue>
// 定义二叉树节点结构
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
// 二叉树的层次遍历函数
void levelOrderTraversal(TreeNode* root) {
if (root == nullptr) return;
std::queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
TreeNode* current = q.front();
q.pop();
std::cout << current->val << " ";
if (current->left != nullptr) {
q.push(current->left);
}
if (current->right != nullptr) {
q.push(current->right);
}
}
}
// 主函数示例
int main() {
// 构建一个示例二叉树
TreeNode* root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
root->left->left = new TreeNode(4);
root->left->right = new TreeNode(5);
// 进行层次遍历
levelOrderTraversal(root);
return 0;
}
```
在这个示例中,我们首先定义了一个二叉树节点结构 `TreeNode`,然后实现了 `levelOrderTraversal` 函数来进行层次遍历。`levelOrderTraversal` 函数使用一个队列来存储待访问的节点。初始时,将根节点加入队列。然后,在队列不为空的情况下,依次访问队列中的节点,并将节点的左右子节点加入队列,直到所有节点都被访问。
阅读全文