Java代码::广度优先遍历二叉树及解释
时间: 2023-11-20 16:05:58 浏览: 184
Java实现二叉树的深度优先遍历和广度优先遍历算法示例
5星 · 资源好评率100%
以下是 Java 代码实现二叉树的广度优先遍历:
```java
public void breadthFirst(TreeNode root) {
if (root == null) {
return;
}
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
System.out.print(node.val + " ");
if (node.left != null) {
queue.offer(node.left);
}
if (node.right != null) {
queue.offer(node.right);
}
}
}
```
广度优先遍历(BFS)是一种逐层遍历树或图的算法,从根节点开始,依次遍历每一层的节点,然后再遍历下一层的节点。在实现 BFS 算法时,通常使用队列来存储待遍历的节点,首先将根节点入队,然后依次取出队列中的节点,输出其值,并将其左右子节点入队。重复以上过程,直至队列为空。由于 BFS 是逐层遍历的,所以它可以用来搜索最短路径和最小步数等问题。在二叉树中,BFS 可以用来打印每一层的节点值,也可以用来检查二叉树是否为完全二叉树。
阅读全文