二叉树的广度优先搜索,使用队列对遍历节点进行存储。先进入队列的节点,优先遍历拓展其左右孩子。

void BFS(TreeNode* root) {
queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
TreeNode* node = q.front();
q.pop();
cout << node->val << endl;
if (node->left)
q.push(node->left);
if (node->right)
q.push(node->right);
}
}
void test01() {
TreeNode a(3);
TreeNode b(5);
TreeNode c(1);
TreeNode d(6);
TreeNode e(2);
TreeNode f(0);
TreeNode g(8);
TreeNode h(7);
TreeNode i(4);
a.left = &b;
a.right = &c;
b.left = &d;
b.right = &e;
c.left = &f;
c.right = &g;
e.left = &h;
e.right = &i;
BFS(&a);
}
本文详细介绍了二叉树的广度优先搜索(BFS)算法,通过使用队列来确保先进先出的原则,依次访问节点及其子节点。示例代码展示了如何遍历二叉树并打印节点值,对于理解和实现二叉树操作具有指导意义。
4136

被折叠的 条评论
为什么被折叠?



