查找二叉树中的下一个更大元素

17 Mar 2025 | 6 分钟阅读

二叉树在描绘元素之间的关系方面起着至关重要的作用。二叉树由节点组成,每个节点最多可以有两个子节点。它还负责高效地存储、管理和操作数据。在处理二叉树时,最常见的问题之一是找出二叉树中下一个更大的元素。为此;我们给定二叉树中的一个节点,需要寻找树中大于该节点本身值的所有值中最小的一个。

这个问题出现在各种应用中,尤其是在寻找最接近的较大值或二叉树的后继节点时。寻找下一个更大的元素可能很麻烦,因为它涉及到以特定顺序遍历树。然后,我们需要识别每个节点的后继节点并帮助它们构建树。

在本文中,我们给定一个二叉树,主要任务是在二叉树中找到比特定目标值大的下一个更大的元素。在本文的这一部分,我们将深入探讨寻找下一个更大元素的问题,然后着眼于一些解决该问题的方法。

实施

输出

Find Next Greater Element in Binary Tree

代码的分步解释

  1. 代码首先包含并声明了输入输出操作所需的头文件。
  2. 接下来,我们创建一个名为“TreeNod”的结构体来表示二叉树中的一个节点,该结构体包含以下三个成员:一个数据值以及指向左子节点和右子节点的指针。
  3. 接下来,我们创建一个“中序遍历”函数,该函数执行中序遍历并将值存储在作为引用传递的向量中。
  4. 接下来,我们创建另一个名为“getNextGreaterElement”的函数,该函数用于查找给定的目标值。它通常接受两个参数:根节点的值,第二个是目标值。
  5. 然后它使用“find”函数查找目标值。
  6. 如果找不到目标值,函数将返回 -1。
  7. 然后它计算目标值与通过“distance”向量获得的值之间的距离。
  8. 如果没有找到下一个更大的元素,函数将抛出一个 -1 值。
  9. 程序的主函数通常作为程序的入口点。它创建一个目标值为 4 的二叉树,并将最终结果设置为打印。

示例 2)

输出

Find Next Greater Element in Binary Tree

代码的分步解释

  1. 代码首先从 Java 标准库导入必要的头文件。
  2. 接下来,我们创建一个名为“TreeNod”的结构体来表示二叉树中的一个节点,该结构体包含以下三个成员:一个数据值以及指向左子节点和右子节点的指针。
  3. 接下来,我们创建一个“中序遍历”函数,该函数执行中序遍历并将值存储在作为引用传递的向量中。
  4. 接下来,我们创建另一个名为“getNextGreaterElement”的函数,该函数用于查找给定的目标值。它通常接受两个参数:根节点的值,第二个是目标值。
  5. 然后它使用“find”函数查找目标值。
  6. 如果找不到目标值,函数将返回 -1。
  7. 然后它计算目标值与通过“distance”向量获得的值之间的距离。
  8. 如果没有找到下一个更大的元素,函数将抛出一个 -1 值。
  9. 程序的主函数通常作为程序的入口点。它创建一个目标值为 4 的二叉树,并将最终结果设置为打印。

下一主题#