从循环链表中删除重复元素的 Java 程序

2025 年 1 月 8 日 | 3 分钟阅读

在此程序中,我们将创建一个循环链表并从列表中移除重复节点。我们将一个节点与列表的其余部分进行比较并检查重复项。如果找到重复项,则从列表中删除重复节点。

在上面的列表中,我们可以看到节点 2 在列表中出现了两次。因此,我们将有一个节点 current 遍历列表。index 指向 current 的下一个节点。Temp 指向 index 前面的节点。当找到重复项时,我们通过将 temp.next 指向 index.next 来删除它。列表在移除重复项后

算法

  • 定义一个 Node 类,它表示列表中的一个节点。它有两个属性 data 和 next,next 将指向下一个节点。
  • 定义另一个类来创建循环链表,它有两个节点:head 和 tail。
  • removeDuplicate() 将从列表中移除重复节点
    • Node current 将指向 head 并用于遍历列表。
    • index 将指向 current 的下一个节点,temp 将指向 index 前面的节点。
    • 我们将比较 current.data 和 index.data。如果找到匹配项,则通过将 temp 的 next 指向 index 的 next 来删除重复数据。
    • 将 index 递增到 index.next,将 current 递增到 current.next。
    • 重复从 c 到 d 的步骤,直到所有重复项都被移除。

程序

输出

Originals list: 
 1 2 3 2 2 4
List after removing duplicates: 
 1 2 3 4
下一个主题Java 程序