📅  最后修改于: 2023-12-03 15:08:06.666000             🧑  作者: Mango
在链表中间插入节点是一个常见的操作,它可以用来在某个位置上添加元素。本文将介绍如何在Java中实现在链表中间插入节点的操作。
链表是由一系列节点组成的数据结构。每个节点包含两个域:一个数据域和一个指针域。数据域存储了节点的数据,指针域存储了下一个节点的地址。链表的头结点是第一个节点,它没有前驱节点。
在链表中间插入节点需要找到要插入的位置,并将新节点插入到指定位置。通常使用循环遍历链表来查找要插入的位置。
我们可以定义一个LinkedList类,其中包含一个Node内部类用于表示节点。在该类中,我们需要实现以下方法:
insertAtPosition(position, data)
:在链表的指定位置插入一个新节点。public class LinkedList {
public class Node {
int data;
Node next;
public Node(int data) {
this.data = data;
}
}
private Node head;
public void insertAtPosition(int position, int data) {
// 创建一个新节点
Node newNode = new Node(data);
// 如果要插入的位置是第一个节点之前
if (position <= 0) {
newNode.next = head;
head = newNode;
return;
}
// 找到要插入的位置
Node current = head;
int index = 0;
while (current != null && index < position - 1) {
current = current.next;
index++;
}
// 如果要插入的位置在链表尾部,直接将新节点添加到链表尾部
if (current == null) {
return;
}
newNode.next = current.next;
current.next = newNode;
}
}
以下是在链表中间插入节点的示例代码:
LinkedList linkedList = new LinkedList();
linkedList.insertAtPosition(0, 1);
linkedList.insertAtPosition(1, 2);
linkedList.insertAtPosition(2, 3);
linkedList.insertAtPosition(3, 4);
linkedList.insertAtPosition(2, 5); // 在第2个位置插入一个新节点
本文介绍了如何在Java中实现在链表中间插入节点的操作。需要注意的是,插入操作会改变链表的结构,因此需要小心操作。