查找链表中最大和最小值节点的 Java 程序

2025年3月17日 | 阅读 3 分钟

在此程序中,我们需要找出给定单向链表中的最小值和最大值节点。

Java program to find the maximum and minimum value node from a linked list

我们将维护两个变量 min 和 max。Min 将保存最小值节点,max 将保存最大值节点。在上面的示例中,1 将是最小值节点,8 将是最大值节点。查找最大值和最小值的算法如下。

算法

  • 创建一个名为 Node 的类,它有两个属性:data 和 next。Next 是指向链表中下一个节点的指针。
  • 创建另一个名为 MinMax 的类,它有两个属性:head 和 tail。
  • addNode() 将向列表添加一个新节点
    • 创建一个新节点。
    • 它首先检查 head 是否等于 null,这意味着列表为空。
    • 如果列表为空,则 head 和 tail 都将指向新添加的节点。
    • 如果列表不为空,新节点将添加到列表末尾,使得 tail 的 next 指向新添加的节点。此新节点将成为列表的新 tail。

a. minNode() 将显示最小值节点

  • 定义一个变量 min,并将其初始化为 head 的数据。
  • Node current 将指向 head。
  • 通过将每个节点的数据与 min 进行比较来遍历列表。
  • 如果 min 大于 current 的数据,则 min 将保存 current 的数据。
  • 到达列表末尾时,变量 min 将保存最小值节点。
  • 显示 min 值。

a. maxNode() 将显示最大值节点

  • 定义一个变量 max,并将其初始化为 head 的数据。
  • Node current 将指向 head。
  • 通过将每个节点的数据与 max 进行比较来遍历列表。
  • 如果 max 小于 current 的数据,则 max 将保存 current 的数据。
  • 到达列表末尾时,变量 max 将保存最大值节点。
  • 显示 max 值。

程序

输出

Minimum value node in the list: 1
Maximum value node in the list: 8
下一个主题Java 程序