Java 中二叉树的右视图2025年9月4日 | 阅读5分钟 在本节中,我们将学习 Java 中的二叉树右视图 以及实现它的不同方法。在二叉树的右视图中,我们只打印当从右侧查看二叉树时可见的二叉树的节点。 对于下面的二叉树 ![]() 上述二叉树的右视图是 20 8 5 10 7 注意:在二叉树的右视图中,节点显示在输出中的顺序并不重要。重要的是要确保所有从二叉树的右侧可见的节点都包含在输出中。方法 1:使用递归方法是使用递归来查找二叉树的右视图。可以向所有递归调用传递一个参数来查找节点的级别。每当我们遇到一个级别大于迄今为止找到的最大级别的节点时,我们就会显示该节点。这是因为它是在此级别遇到的最后一个节点。由于我们需要显示二叉树的右视图,因此我们必须以先访问右子树再访问左子树的方式进行遍历。 实施让我们看一下使用递归实现二叉树的右视图。以下代码的执行时间为 O(n),程序使用的堆栈也导致空间复杂度为 O(n),其中 n 是二叉树中存在的节点总数。 文件名: RightViewExample.java 输出 The following are the nodes present in the right view of the Binary Tree: 20 8 5 10 7 方法 2:使用 Queue()如果我们仔细观察,我们会发现二叉树的右视图是每个级别遇到的最后一个节点。因此,我们可以使用队列数据结构来遍历二叉树的每个级别。在每个级别,我们只打印在每个级别找到的最后一个节点的值。 实施让我们看一下使用队列实现二叉树的右视图。下面程序的 time complexity 为 O(n),其中 n 是树中存在的节点总数。 文件名: RightViewExample1.java 输出 The following are the nodes present in the right view of the Binary Tree: 20 8 5 10 下一个主题Java 中的增量和减量运算符 |
Java 数据库连接 (JDBC) 是一个 Java API,它使 Java 程序能够访问和操作存储在数据库中的数据。JDBC 提供了一组通用的类和接口来连接数据库、运行 SQL 命令以及检索数据。称为 JDBC 驱动程序的软件元素...
阅读 4 分钟
这是计算机科学中处理数字领域图像处理和分析的部分。图像处理,由于多媒体的日益使用,已成为图像增强、文本提取、艺术效果等任务中不可或缺的一部分。在本节中,我们...
阅读9分钟
打砖块(也称为 Breakout)是一款经典的街机游戏,数十年来一直让玩家乐此不疲。在本节中,我们将学习使用 Java 创建一个简单的打砖块游戏的流程。该项目将帮助我们理解游戏开发的基础知识,包括……
阅读 13 分钟
在计算机语言中,枚举用于表示一组命名的常量。例如,一副扑克牌中的四种花色(红心、方块、梅花、黑桃)可以由枚举类型成员 Club、Diamonds、Heart 和 Spade 表示……
阅读 4 分钟
在 Java 中处理双精度浮点数等浮点数是很常见的。虽然在 Java 中比较整数有时会因为它们固有的错误而变得有点困难。与比较双精度值相比,Java 中比较整数很简单,需要仔细考虑和计算...
阅读 6 分钟
是当今世界上最流行的编程语言之一,广泛应用于从 Web 开发到移动应用程序开发的各种应用。Java 由 James Gosling 及其团队于 1990 年在 Sun Microsystems 开发。它因其简洁、易于……
阅读 4 分钟
java.nio.FloatBuffer 类的 has slice() 函数。使用 FloatBuffer 类,可以创建一个共享给定缓冲区内容子序列的新 float 缓冲区。此缓冲区的当前位置将用作内容的起点...
阅读 2 分钟
自然数是指包含从 1 到无穷大的所有正整数的数字。例如,1、2、3、4、5、......、n。当我们把这些数字加在一起时,我们就得到了自然数的和。在本节中,我们将创建以下程序:Java...
阅读 3 分钟
Java 中的 OffsetDateTime 类使用 format() 方法提供的格式化器来格式化此日期和时间。Java 中的 OffsetDateTime 类使用 format() 方法提供的格式化器来格式化此日期和时间。语法:public...
阅读 2 分钟
java.text.CollationElementIterator 类有一个方法。可以使用 CollationElementIterator 类获取 CollationElementIterator 当前指向的排序器中的项目索引。语法:public int getOffset() 参数:此方法不接受任何参数。返回值:元素的偏移量...
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India