Java 中的逆层序遍历17 Mar 2025 | 5 分钟阅读 我们已经在这里讨论过 层序遍历。在本教程中,我们将讨论如何在 Java 中执行反向层序遍历。在输入中,会给出一个二叉树,我们的任务是以反向层序模式打印包含在各种子节点中的值。 示例 1 ![]() 输入 输出 15, 35, 50, 12, 16, 90, 17, 19, 11 示例 2 输入 输出:16, 17, 14, 15, 12, 13, 11 方法:使用递归在层序遍历中,每一层的值都从左到右打印。现在,在本例中,我们需要递归遍历所有层,然后从右到左打印。但是,在此之前,我们必须知道二叉树中有多少层。要找到这一点,我们只需要找到树的高度。其实现如下。 文件名:ReverseLevelOrderRec.java 输出 The reverse Level Order traversal of the binary tree is: 15 35 50 12 16 90 17 19 11 The reverse Level Order traversal of the binary tree is: 16 17 14 15 12 13 11 复杂度分析:程序的复杂度分析为 O(n2),程序的空间复杂度为 O(h),其中 h 是二叉树的高度。 方法:使用队列和栈在这种方法中,我们将使用队列和栈。首先,我们将根节点放入队列,然后是它的右子节点和左子节点(如果存在)。之后,弹出父节点并将其推入栈。现在从队列中弹出右子节点,它现在是父节点,并将其推入栈。将父节点的右子节点和左子节点放入队列。重复上述过程处理其他节点,直到队列为空。现在,使用循环,弹出插入栈中的节点并打印它们的值。这样,我们就可以在不使用递归的情况下执行反向层序遍历。 文件名:BinaryTreeItr.java 输出 The reverse Level Order traversal of the binary tree is: 15 35 50 12 16 90 17 19 11 The reverse Level Order traversal of the binary tree is: 16 17 14 15 12 13 11 复杂度分析:程序的复杂度分析为 O(n2),程序的空间复杂度为 O(h),其中 h 是二叉树的高度。 |
数独是一种基于逻辑的谜题,它使用组合数字放置。在经典的数独谜题中,任务是将数字填写到一个 9x9 的网格中,使得每一行、每一列以及每一个 3x3 的子网格都包含...
7 分钟阅读
PermGen 代表永久代。它是一种特殊的堆空间。它独立于主内存(堆)。JVM 使用 PermGen 来跟踪已加载的类元数据。所有静态内容都由 JVM 存储到此内存区域。静态内容...
阅读 2 分钟
图案因其美学吸引力以及它们为我们的可见世界带来的秩序感而一直吸引着人类。尤其是方形图案,它们简单而优雅,并且可以在 Java 中相对轻松地创建。在本节中,我们将深入...
阅读 4 分钟
编程中处理链表时的一个常见问题是确定两个链表是否相交。如果相交,则找到链表相交的节点。这种情况发生在两个链表在末尾共享一组公共节点,形成一个 Y 形结构时...。
阅读 6 分钟
在本 Java IO 的前面部分,我们讨论了各种文件操作,例如写入文件、读取文件、重命名文件等。在本节中,我们将讨论如何通过 Java 程序获取文件大小。有两种...
5 分钟阅读
Java 是一种强大的编程语言,以其多功能性和广泛的库而闻名。在处理数组时,您可能经常遇到需要计算两个数组之和的情况。无论您是初学者还是经验丰富的开发人员,理解如何完成此任务...
5 分钟阅读
数字 N 的阶乘是所有正数递减整数(小于或等于 N 的整数)的乘积。N! = N * (N - 1) ... * 3 * 2 * 1 在本节中,我们将创建 Java 程序来查找 N 的阶乘……
阅读 3 分钟
Sylvester 序列是一个数学序列,其中每一项都源自所有之前项的乘积加一。它以 2 开始,后续项迅速增长。该序列在数论和组合学中有应用。在 Java 中实现它涉及递归或迭代…
阅读 8 分钟
ORE 数字是一个特殊的正数,也被称为调和除数数。如果一个数的约数具有整数的调和值,则该数称为 ORE。与质数和阿姆斯特朗数不同,ORE 数字很少被...询问。
7 分钟阅读
回文链表是指其元素序列正读反读都相同的链表。要确定链表是否为回文,我们需要将链表的前半部分与反转的后半部分进行比较,同时……
阅读 12 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India