
如何用java实现层序遍历二叉树
用户关注问题
什么是二叉树的层序遍历?
能否简单介绍一下层序遍历二叉树的概念?
层序遍历的定义
层序遍历是一种按照树的层级顺序访问所有节点的遍历方式,即从树的根节点开始,依次访问每一层的节点,从左到右进行遍历,直到所有节点被访问完毕。
用Java实现层序遍历时常用的数据结构有哪些?
在用Java代码实现层序遍历过程中,应该用到哪些数据结构?
层序遍历常用队列结构
在实现层序遍历时,通常会使用队列(Queue)这种先进先出的数据结构来保存待访问的节点。通过不断地从队列中取出节点并将其子节点加入队列,实现按层访问所有节点。
如何通过Java代码实现二叉树的层序遍历?
有没有简洁明了的Java示例代码可以展示层序遍历的实现方式?
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;
}