在Java中,实现链表插入操作需要遵循以下步骤:
data
)和一个指向下一个节点的引用(如next
)。public class ListNode {
int data;
ListNode next;
public ListNode(int data) {
this.data = data;
this.next = null;
}
}
head
)以及实现插入操作的方法(如insertAtHead
、insertAtTail
和insertAfter
)。public class LinkedList {
ListNode head;
public LinkedList() {
this.head = null;
}
// 在链表头部插入节点
public void insertAtHead(int data) {
ListNode newNode = new ListNode(data);
newNode.next = head;
head = newNode;
}
// 在链表尾部插入节点
public void insertAtTail(int data) {
ListNode newNode = new ListNode(data);
if (head == null) {
head = newNode;
return;
}
ListNode current = head;
while (current.next != null) {
current = current.next;
}
current.next = newNode;
}
// 在指定节点之后插入新节点
public void insertAfter(ListNode node, int data) {
if (node == null) {
System.out.println("The given previous node must not be null");
return;
}
ListNode newNode = new ListNode(data);
newNode.next = node.next;
node.next = newNode;
}
}
public class Main {
public static void main(String[] args) {
LinkedList list = new LinkedList();
// 在链表头部插入节点
list.insertAtHead(3);
list.insertAtHead(2);
list.insertAtHead(1);
// 在链表尾部插入节点
list.insertAtTail(4);
list.insertAtTail(5);
// 在指定节点之后插入新节点
ListNode node = list.head.next; // 节点值为2
list.insertAfter(node, 6);
}
}
以上代码将创建一个链表,并在头部、尾部和指定节点之后插入新节点。运行Main
类,输出链表中的元素,将显示插入操作的结果。