二叉树的非线性递归遍历结构。java
时间: 2024-08-13 13:08:16 浏览: 47
二叉树的非线性递归遍历结构,也称为层次遍历或广度优先搜索(Breadth-First Search, BFS),它的遍历顺序是从根节点开始,按照从上到下、从左到右的顺序逐层访问节点,每一层的节点都是先访问父节点的子节点,再访问兄弟节点。
在Java中,我们可以使用队列(Queue)来实现这种遍历。具体步骤如下:
1. 创建一个空的队列,将根节点入队。
2. 当队列不为空时,执行以下操作:
a. 弹出队首元素,访问该节点。
b. 将该节点的左子节点(如果存在)入队。
c. 将该节点的右子节点(如果存在)入队。
3. 重复步骤2,直到队列为空。
下面是一个简单的Java代码实现示例:
```java
import java.util.LinkedList;
import java.util.Queue;
class Node {
int val;
Node left;
Node right;
// constructor, getters and setters...
}
public class BinaryTreeBFS {
public void bfs(Node root) {
if (root == null) return;
Queue<Node> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
Node node = queue.poll();
System.out.print(node.val + " "); // 访问节点
if (node.left != null) queue.offer(node.left);
if (node.right != null) queue.offer(node.right);
}
}
}
```
阅读全文