用c++写一个二叉树的层次遍历
时间: 2023-09-03 18:13:12 浏览: 88
二叉树的层次遍历 c++实现
5星 · 资源好评率100%
以下是用 C++ 实现二叉树的层次遍历的代码示例:
```c++
#include <iostream>
#include <queue>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
void levelOrder(TreeNode* root) {
if (!root) return;
queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
int n = q.size();
for (int i = 0; i < n; i++) {
TreeNode* node = q.front();
q.pop();
cout << node->val << " ";
if (node->left) q.push(node->left);
if (node->right) q.push(node->right);
}
cout << endl;
}
}
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);
levelOrder(root);
return 0;
}
```
该程序首先定义了一个 `TreeNode` 结构体,表示二叉树的节点。`levelOrder` 函数接收二叉树的根节点作为参数,利用队列实现二叉树的层次遍历,并输出每一层的节点值。`main` 函数中创建了一个二叉树,并调用 `levelOrder` 函数进行层次遍历。
阅读全文