C++实现二叉树层次遍历
时间: 2023-07-17 09:10:22 浏览: 123
好的!下面是一个用C++实现二叉树层次遍历的示例代码:
#include <iostream>
#include <>
struct TreeNode {
int val;
* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
void levelOrder(TreeNode* root) {
if (root == nullptr)
return;
std::queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
TreeNode* node = q.front();
q.pop();
std::cout << node->val << " ";
if (node->left)
q.push(node->left);
if (node->right)
q.push(node->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);
// 层次遍历二叉树
std::cout << "层次遍历结果:";
levelOrder(root);
return 0;
}
这段代码实现了一个二叉树的层次遍历。我们使用一个队列来帮助进行遍历,首先将根节点入队,然后进入循环,每次从队列中取出一个节点,输出其值,并将其左右子节点入队(如果有的话),直到队列为空。
在main函数中,我们创建了一个简单的二叉树,并调用levelOrder函数进行层次遍历,并输出结果。
希望这段代码能够满足你的需求!如有任何问题,请随时告诉我。
相关推荐
















