c++二叉树的层次遍历
作者:野牛程序员:2024-01-03 21:47:36 C++阅读 2681
使用C++实现二叉树的层次遍历可以借助队列来实现。以下是一个简单的示例代码:
#include <iostream> #include <queue> // 二叉树节点的定义 struct TreeNode { int data; TreeNode* left; TreeNode* right; TreeNode(int value) : data(value), left(nullptr), right(nullptr) {} }; // 层次遍历函数 void levelOrderTraversal(TreeNode* root) { if (!root) return; std::queue<TreeNode*> q; q.push(root); while (!q.empty()) { TreeNode* current = q.front(); q.pop(); // 处理当前节点 std::cout << current->data << " "; // 将左右子节点加入队列 if (current->left) q.push(current->left); if (current->right) 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); root->right->left = new TreeNode(6); root->right->right = new TreeNode(7); // 进行层次遍历 levelOrderTraversal(root); // 释放内存 delete root->left->left; delete root->left->right; delete root->right->left; delete root->right->right; delete root->left; delete root->right; delete root; return 0; }
此代码定义了一个TreeNode
结构表示二叉树节点,然后使用队列进行层次遍历
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
