java树的层序遍历
时间: 2023-06-21 11:17:20 浏览: 84
Java中树的层序遍历可以使用BFS(广度优先搜索)实现,具体的步骤如下:
1. 定义一个队列,将根节点加入队列中
2. 循环遍历队列,直到队列为空
3. 在循环中,取出队列的头部元素,访问该节点,并将其左子节点和右子节点(如果存在)加入队列中
4. 重复步骤3,直到队列为空
下面是一个示例代码:
```
public void levelOrderTraversal(TreeNode root) {
if (root == null) return;
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
int size = queue.size();
for (int i = 0; i < size; i++) {
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);
}
System.out.println();
}
}
```
其中TreeNode表示树节点,val表示节点的值,left和right分别表示节点的左子节点和右子节点。在代码中,循环中的size表示当前层的节点数,for循环用来遍历当前层的所有节点。
阅读全文