Java 中二叉树的顶视图

2025年9月4日 | 阅读5分钟

在本节中,我们将学习 Java 二叉树的顶部视图 以及实现它的不同方法。在二叉树的顶部视图中,我们只打印从顶部查看二叉树时可见的节点。

例如,考虑以下二叉树。

Top View of a Binary Tree in Java

上述二叉树的顶部视图是

对于下面的二叉树

Top View of a Binary Tree in Java

上述二叉树的顶部视图是

注意:在二叉树的顶部视图中,节点显示的输出顺序并不重要。唯一重要的是,所有从二叉树顶部可见的节点都应包含在输出中。

方法 1:使用队列

在此方法中,我们需要通过将根节点作为参考来对具有相同水平距离的节点进行分组。我们使用队列对树进行层次遍历,以便先访问顶部节点,然后再访问下面的节点。使用哈希技术来识别给定的水平距离是否已查看。

实施

让我们通过水平距离方法来实现二叉树的顶部视图。

文件名: TopViewExample.java

输出

The following are the nodes present in the top view of the Binary Tree
7 4 3 2 1

方法 2:使用两个变量

在前一种方法中,我们讨论了使用队列查看树的顶部。在此方法中,我们将使用两个变量而不是队列。一个变量用于识别节点的深度(将根节点作为参考),另一个用于查找与根节点的垂直距离。对于索引,我们使用垂直距离。如果再次访问具有相同垂直距离的任何其他节点,则必须检查新节点的深度是高于还是低于当前节点。当新节点的深度较低时,我们进行替换。

实施

让我们使用两个变量来实现二叉树的顶部视图。

文件名: TopViewExample1.java

输出

The following are the nodes present in the top view of the Binary Tree
7 4 3 2 1

下一主题Java 适配器类