如何用java实现层序遍历二叉树

如何用java实现层序遍历二叉树

作者:Rhett Bai发布时间:2026-02-04阅读时长:0 分钟阅读次数:2

用户关注问题

Q
什么是二叉树的层序遍历?

能否简单介绍一下层序遍历二叉树的概念?

A

层序遍历的定义

层序遍历是一种按照树的层级顺序访问所有节点的遍历方式,即从树的根节点开始,依次访问每一层的节点,从左到右进行遍历,直到所有节点被访问完毕。

Q
用Java实现层序遍历时常用的数据结构有哪些?

在用Java代码实现层序遍历过程中,应该用到哪些数据结构?

A

层序遍历常用队列结构

在实现层序遍历时,通常会使用队列(Queue)这种先进先出的数据结构来保存待访问的节点。通过不断地从队列中取出节点并将其子节点加入队列,实现按层访问所有节点。

Q
如何通过Java代码实现二叉树的层序遍历?

有没有简洁明了的Java示例代码可以展示层序遍历的实现方式?

A

Java层序遍历示例代码

可以通过Java中的Queue接口配合LinkedList类来实现层序遍历。先将根节点加入队列,循环地取出队头节点并访问,再将该节点的左子节点和右子节点(如果存在)加入队列,直到队列为空。示例代码如下:

public List<Integer> levelOrder(TreeNode root) {
    List<Integer> result = new ArrayList<>();
    if (root == null) return result;
    Queue<TreeNode> queue = new LinkedList<>();
    queue.offer(root);
    while (!queue.isEmpty()) {
        TreeNode node = queue.poll();
        result.add(node.val);
        if (node.left != null) queue.offer(node.left);
        if (node.right != null) queue.offer(node.right);
    }
    return result;
}