在单向链表中插入新节点的程序

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

说明

在此程序中,我们将创建一个单链表,并在列表的中间插入一个新节点。为此,我们将计算列表的大小,然后将其除以2以获得需要插入新节点的中间点。

Program to insert a new node at the middle of the singly linked list

考虑上图;节点1代表原始列表的头部。令节点New为需要在列表中间添加的新节点。首先,我们计算大小,在本例中为4。因此,为了得到中间点,我们将其除以2并存储在变量count中。节点current将指向head。首先,我们遍历列表,直到current指向中间位置。定义另一个节点temp,它指向current后面的节点。在current和temp之间插入New节点。

算法

  1. 创建一个名为 Node 的类,它有两个属性:data 和 next。Next 是指向链表中下一个节点的指针。
  2. 创建另一个名为InsertMid的类,该类具有三个属性:head、tail和size,它们跟踪列表中存在的节点数量。
  3. addNode() 将向列表添加一个新节点
    1. 创建一个新节点。
    2. 它首先检查 head 是否等于 null,这意味着列表为空。
    3. 如果列表为空,则 head 和 tail 都将指向新添加的节点。
    4. 如果列表不为空,新节点将添加到列表末尾,使得 tail 的 next 指向新添加的节点。此新节点将成为列表的新 tail。
  4. addInMid()将在列表的中间添加一个新节点
    1. 它首先检查 head 是否等于 null,这意味着列表为空。
    2. 如果列表为空,则 head 和 tail 都将指向新添加的节点。
    3. 如果列表不为空,则计算列表的大小并将其除以2以获得列表的中间点。
    4. 定义节点current,它将遍历列表,直到current指向中间节点。
    5. 定义另一个节点 temp,它将指向 current 的下一个节点。
    6. 新节点将插入在 current 之后和 temp 之前,使得 current 指向新节点,新节点指向 temp。
  5. display() 将显示列表中存在的节点
    1. 定义一个节点 current,它最初将指向列表的 head。
    2. 遍历列表直到 current 指向 null。
    3. 通过使 current 在每次迭代中指向它的下一个节点来显示每个节点。

解决方案

Python

输出

 Original list: 
1 2 
Updated List: 
1 3 2 
Updated List: 
1 3 4 2 

C

输出

Original list: 
1 2 
Updated List: 
1 3 2 
Updated List: 
1 3 4 2 

JAVA

输出

Original list: 
1 2 
Updated List: 
1 3 2 
Updated List: 
1 3 4 2 

C#

输出

Original list: 
1 2 
Updated List: 
1 3 2 
Updated List: 
1 3 4 2 

PHP

输出

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