Java 中二叉树的左视图2025年9月2日 | 阅读 5 分钟 在本节中,我们将通过不同的方法学习 Java 中的二叉树左视图。在二叉树的左视图中,我们仅打印当从左侧查看二叉树时可见的所有节点。 例如,考虑下面的二叉树。 ![]() 上面二叉树的左视图是 注意:在二叉树的左视图中,节点显示在输出中的顺序无关紧要。唯一重要的是,所有从二叉树左侧可见的节点都应包含在输出中。方法 1:使用递归方法是使用递归来查找二叉树的左视图。可以向所有递归调用传递一个参数来查找节点的级别。每当我们遇到一个级别大于迄今找到的最大级别的节点时,我们就显示该节点。这是因为它是在此级别遇到的第一个节点。由于我们需要显示二叉树的左视图,因此我们必须以先访问左子树再访问右子树的方式进行遍历。 实施让我们使用递归来实现二叉树左视图。以下代码的完成时间复杂度为 O(n),并且由于递归调用中使用的堆栈,程序的空间复杂度也为 O(n),其中 n 是二叉树中的节点总数。 文件名:LeftViewExample.java 输出 The following are the nodes present in the left view of the Binary Tree: 20 22 25 14 7 方法 2:使用 Queue()如果我们仔细观察,我们会发现二叉树的左视图是每个级别遇到的第一个节点。因此,我们可以使用队列数据结构来遍历二叉树的每个级别。在每个级别,我们只打印找到的第一个节点的值。 实施让我们使用队列来实现二叉树左视图。下面程序的 time complexity 为 O(n),其中 n 是树中的节点总数。 文件名:LeftViewExample1.java 输出 The following are the nodes present in the left view of the Binary Tree: 20 22 25 14 7 |
我们已经讨论过一个数字的阶乘。然而,我们仍然需要单独讨论大数的阶乘。这是因为不能用计算大数阶乘的方法来计算大数的阶乘……
阅读 8 分钟
equals() 和 hashcode() 是 Object 类提供的两个重要方法,用于比较对象。由于 Object 类是所有 Java 对象的父类,因此所有对象都继承了这两个方法的默认实现。在本主题中,我们将看到...
阅读 3 分钟
螺旋图案是计算机图形学中的一个流行概念,可用于以独特有趣的方式可视化数据。在本节中,我们将探讨如何使用 Java 创建数字螺旋图案。我们将涵盖其背后的逻辑……
5 分钟阅读
? 用户体验在快节奏的软件开发领域至关重要。向您的 Java 程序添加一个设计精美的启动屏幕可以立即吸引用户的注意力。除了提供视觉上愉悦的开场白,启动屏幕还可以让用户放心,该程序正在...
阅读 4 分钟
? 在 Java 中,main() 方法在程序执行中起着至关重要的作用。main() 方法是在执行期间首先遇到的方法。因此,它是程序的入口点。我们不能修改 main() 方法的语法。唯一能...
阅读 3 分钟
这是面试官经常搜索的一个非常常见的程序。我们可以根据一些特定的字符串分隔符来分割字符串。我们通常用逗号或空格分割字符串。我们使用字符串的split()方法来分割。split()...的语法
5 分钟阅读
问题陈述该任务涉及计算给定矩阵中所有升序或降序排列的行。如果一行中的所有元素都遵循既不递减(升序)也不递增的模式,则该行被视为已排序。例如,[1,2,3,4] 是升序排列。关于...
阅读 4 分钟
Java 是最流行和广泛使用的面向对象编程语言。它为开发人员提供了开发各种应用程序(如 Web、桌面应用程序、游戏等)的平台。使用 Java 编程语言的原因是它提供了安全性、可靠性,并且速度也很快。编写代码...
5 分钟阅读
问题陈述:找到使一个字符串与另一个字符串共享最长公共前缀所需的最少移位次数。输入:str1 = "abcde" str2 = "cdeab" 输出:2 说明:将 str1 向左移两次得到 "cdeab",这与 str2 匹配。方法 1:蛮力... ...
阅读 8 分钟
给定一个字符串,我们的任务是使用最多 N/2 次移动来排序一个由前 N 个不同字母组成的字符串。每次移动包括以下步骤:选择任何三个不同的索引。在这些索引处,执行循环移位...
11 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India