Java 中二叉树的底视图2025年9月2日 | 阅读 6 分钟 在本节中,我们将学习如何使用不同的方法在 Java 中实现二叉树的底部视图。在二叉树的底部视图中,我们只打印当二叉树从底部查看时可见的那些节点。 例如,考虑以下二叉树。 ![]() 底部视图是 注意:在二叉树的底部视图中,输出中节点的显示顺序并不重要。重要的是,所有从二叉树底部可见的节点都应包含在输出中。方法 1:使用队列我们进行层序遍历并将节点存储在队列中。我们假设根节点的水平距离 (horDis) 为 0,向下一层移动会将 horDis 更新为 -1,然后向右移动一步会将 horDis 更新为 +1。 请注意,在进行层序遍历时,我们还需要存储节点的水平距离。为了做到这一点,我们将使用一个 map,其中 horDis 是键,节点的数据是值。 实施让我们看看使用队列实现二叉树底部视图的实现。 文件名: BottomViewExample.java 输出 10 5 25 14 7 方法 2:使用 HashMap()在前一种方法中,我们讨论了使用队列实现二叉树的底部视图。在此方法中,我们使用了 Map,其中键是水平距离 (horDis),值是 pair(k, r),其中 r 表示节点的高度,k 表示节点的值。我们对二叉树进行前序遍历。如果当前节点是第一次观察到其水平距离,则将其插入 map。否则,我们会将当前节点与 map 中(在相同水平距离处)已存在的节点进行比较。如果当前节点的高度更大,则更新 map;否则,不更新。 实施让我们看看使用 HashMap 实现二叉树底部视图的实现。 文件名: BottomViewExample1.java 输出 The following are the nodes present in the bottom view of the Binary Tree: 25 14 7 10 5 下一个主题Java 中的嵌套 switch |
什么是 Tesseract OCR?Tesseract OCR 是 HP 实验室在 1985 年开发并于 2005 年推出的光学字符识别引擎。自 2006 年起,它一直由 Google 开发。Tesseract 支持 Unicode (UTF-8),并且可以“开箱即用”地检测 100 多种语言……
阅读 6 分钟
在本节中,我们将学习什么是均衡数字,并创建 Java 程序来查找均衡数字。它经常出现在 Java 编码面试和学术讨论中。均衡数字:一个自然数,其数字个数与其中存在的数字个数相同...
阅读 4 分钟
? 在 Java 中,您可以使用 java.time.LocalDate 类来分析和操作日期。要接受日期格式,可以使用 java.time.format.DateTimeFormatter 和异常处理的组合。以下是一些示例:DateParser.java import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; public class DateParser { public static LocalDate parseDate(String inputDate)...
阅读 8 分钟
在本节中,我们将了解什么是分区数,并创建 Java 程序来检查给定数字是否为分区数。分区数程序经常在 Java 编码面试和学术界中出现。分区数 在组合数学和数论中,...
阅读 4 分钟
Playfair密码由Charles Whetstone于1889年提出。但它以一位朋友Lord Lyon Playfair的名字命名,因为他推广了它的使用。它是最流行的对称加密技术之一,属于替换密码。它是一种编码程序,它...
阅读9分钟
Java 通常使用 JLabel 或 System.out.println() 等 GUI 元素来捕获和跟踪打印的输出,以确定屏幕上显示的字符串序列。这可以通过将 System.out 重定向到 ByteArrayOutputStream 来动态存储打印字符串的序列来实现,或者...
5 分钟阅读
Java 多重继承(也称为多次类型转换)是指在变量上连续应用多个类型转换操作的过程。这通常发生在数据类型不兼容但需要转换才能使代码正常运行时。多重继承在面向对象中特别有用...
阅读 4 分钟
在数组中查找缺失的数字是编程中一个常见的问题。它经常出现在数据验证、错误检查或解决数学谜题等场景中。在本节中,我们将探讨如何使用 Java 编程语言在数组中查找缺失的数字....
阅读9分钟
Java 中的计算器程序是一个执行加法、减法、乘法和除法等基本算术运算的应用程序。算法步骤 1:输入第一个数字步骤 1.1:使用 Scanner 提示用户输入第一个数字。步骤 2:输入运算符步骤 2.1:提示输入运算符(+、-、*、...
阅读 8 分钟
在 Java 中,继承使一个类能够继承另一个类(称为父类或超类)的行为和功能。子类(通常称为子类)是接收父类这些特性的类。它表示子类……
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India