问:从循环链表的开头删除新节点的程序。

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

说明

在此程序中,我们将创建一个循环链表并从列表开头删除一个节点。如果列表为空,则打印消息“列表为空”。如果列表不为空,我们将使头指向列表中的下一个节点,即删除第一个节点。

Program to delete a new node from the beginning of the circular linked list

从开头删除节点后的循环链表

Program to delete a new node from the beginning of the circular linked list

在这里,A 代表列表的头部。我们需要从列表开头删除一个节点。因此,我们将删除 A,使 B 成为新的头部,尾部将指向新的头部。

算法

  1. 定义一个 Node 类,它表示列表中的一个节点。它有两个属性 data 和 next,next 将指向下一个节点。
  2. 定义另一个类来创建循环链表,它有两个节点:head 和 tail。它有两个方法:deleteStart() 和 display()。
  3. deleteStart() 将从列表开头删除节点
    1. 它首先检查 head 是否为 null(链表为空),然后,它将从函数返回,因为链表中没有节点。
    2. 如果链表不为空,它将检查链表是否只有一个节点。
    3. 如果列表只有一个节点,它将 head 和 tail 都设置为 null。
    4. 如果列表中有多个节点,那么 head 将指向列表中的下一个节点,即删除前一个 head 节点,tail 将指向新的 head。
  4. display() 将显示列表中存在的所有节点。
    1. 定义一个新节点“current”,它将指向头节点。
    2. 打印 current.data 直到 current 再次指向 head。
    3. 在每次迭代中,current 将指向列表中的下一个节点。

解决方案

Python

输出

Original List: 
 1 2 3 4
Updated List: 
 2 3 4
Updated List: 
 3 4
Updated List: 
 4
Updated List: 
List is empty

C

输出

Original List: 
 1 2 3 4
Updated List: 
 2 3 4
Updated List: 
 3 4
Updated List: 
 4
Updated List: 
List is empty

JAVA

输出

Original List: 
 1 2 3 4
Updated List: 
 2 3 4
Updated List: 
 3 4
Updated List: 
 4
Updated List: 
List is empty

C#

输出

Original List: 
 1 2 3 4
Updated List: 
 2 3 4
Updated List: 
 3 4
Updated List: 
 4
Updated List: 
List is empty

PHP

输出

Original List: 
 1 2 3 4
Updated List: 
 2 3 4
Updated List: 
 3 4
Updated List: 
 4
Updated List: 
List is empty
 
下一主题#