Javatpoint标志
Javatpoint标志

程序从单链表的中间删除一个新节点

解释

在这个程序中,我们将创建一个单链表,并从列表中间删除一个节点。为了完成这个任务,我们将计算列表的大小,然后将其除以2,得到列表的中点。节点温度将指向头节点。我们将遍历列表直到中间?到了。现在,temp将指向中间节点,节点current将指向temp之前的节点,我们删除中间节点,这样current的下一个节点将指向temp的下一个节点。

程序从单链表的中间删除一个新节点

考虑上面的例子,上面列表的中点是2。从头部到中点迭代temp。现在,temp指向需要删除的中间节点。在此例中,“Node”为需要删除的中间节点。可以通过使节点2的next (current)指向节点3 (temp的下一个节点)来删除节点。将temp设置为null。

算法

  1. 创建一个类Node,它有两个属性:data和next。Next是指向列表中下一个节点的指针。
  2. 创建另一个类DeleteMid,它有三个属性:head、tail和size,用于跟踪列表中存在的节点数量。
  3. addNode()将向列表中添加一个新节点:
    1. 创建一个新节点。
    2. 它首先检查,头是否等于空,这意味着列表是空的。
    3. 如果列表为空,则头和尾都指向新添加的节点。
    4. 如果列表不为空,则新节点将被添加到列表的末尾,这样tail的next将指向新添加的节点。这个新节点将成为列表的新尾部。
  4. deleteFromMid()将从列表中间删除一个节点:
    1. 它首先检查头部是否为空(空列表),然后显示消息“列表为空”并返回。
    2. 如果列表不为空,它将检查列表是否只有一个节点。
    3. 如果列表只有一个节点,它将把头和尾都设置为空。
    4. 如果列表有多个节点,那么计算列表的大小并将其除以2以获得列表的中点。
    5. 声明一个节点temp,它将指向head,节点current将指向temp之前的节点。
    6. 遍历列表,直到temp指向中间节点。如果current不指向null,那么通过使current的next指向temp的next来删除中间节点(temp)。否则,head和tail都将指向temp旁边的节点,并通过将temp设置为null来删除中间节点。
  5. Display()将显示列表中存在的节点:
    1. 定义一个节点电流,它将最初指向列表的头部。
    2. 遍历列表,直到当前指向null。
    3. 在每次迭代中,通过使current指向它旁边的节点来显示每个节点。

解决方案

Python

输出:

原始列表:1 2 3 4更新列表:1 3 4更新列表:1 4更新列表:4更新列表:列表为空

C

输出:

原始列表:1 2 3 4更新列表:1 3 4更新列表:1 4更新列表:4更新列表:列表为空

JAVA

输出:

原始列表:1 2 3 4更新列表:1 3 4更新列表:1 4更新列表:4更新列表:列表为空

c#

输出:

原始列表:1 2 3 4更新列表:1 3 4更新列表:1 4更新列表:4更新列表:列表为空

PHP

输出:

原始列表:1 2 3 4更新列表:1 3 4更新列表:1 4更新列表:4更新列表:列表为空

下一个话题





Youtube 视频加入我们的Youtube频道:现在加入

反馈


帮助别人,请分享

脸谱网 推特 pinterest

学习最新教程


准备


热门的技术


b .技术/马华






Baidu
map