Java 从单链表末尾删除节点的程序

17 Mar 2025 | 4 分钟阅读

在此程序中,我们将创建一个单链表,并删除链表的尾节点。要完成此任务,我们首先找出链表的倒数第二个节点。然后,将倒数第二个节点设为链表的新尾节点。最后,删除链表的尾节点。

Java program to delete a node from the end of the singly linked list

在上面的示例中,Node 是链表的尾节点。遍历链表以找出倒数第二个节点,在本例中是节点 4。将节点 4 设为链表的新尾节点。节点 4 的 next 将指向 null。

算法

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

a. DeleteFromEnd() 将从链表的末尾删除一个节点

  • 它首先检查 head 是否为 null(空列表),然后显示消息“列表为空”并返回。
  • 如果列表不为空,它将检查列表是否只有一个节点。
  • 如果列表只有一个节点,它将 head 和 tail 都设置为 null。
  • 如果链表有多个节点,则遍历链表直到 current 指向链表中的倒数第二个节点。
  • current 节点将成为链表的新尾节点。
  • current 的下一个节点将被设为 null,以删除最后一个节点。

a. display() 将显示列表中存在的节点

  • 定义一个节点 current,它最初将指向列表的 head。
  • 遍历列表直到 current 指向 null。
  • 通过使 current 在每次迭代中指向它的下一个节点来显示每个节点。

程序

输出

Original List: 
1 2 3 4 
Updated List: 
1 2 3 
Updated List: 
1 2 
Updated List: 
1 
Updated List: 
List is empty
下一个主题Java 程序