在Java中,實(shí)現(xiàn)鏈表插入操作需要遵循以下步驟:
data
)和一個(gè)指向下一個(gè)節(jié)點(diǎn)的引用(如next
)。public class ListNode {
int data;
ListNode next;
public ListNode(int data) {
this.data = data;
this.next = null;
}
}
head
)以及實(shí)現(xiàn)插入操作的方法(如insertAtHead
、insertAtTail
和insertAfter
)。public class LinkedList {
ListNode head;
public LinkedList() {
this.head = null;
}
// 在鏈表頭部插入節(jié)點(diǎn)
public void insertAtHead(int data) {
ListNode newNode = new ListNode(data);
newNode.next = head;
head = newNode;
}
// 在鏈表尾部插入節(jié)點(diǎn)
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;
}
// 在指定節(jié)點(diǎn)之后插入新節(jié)點(diǎn)
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();
// 在鏈表頭部插入節(jié)點(diǎn)
list.insertAtHead(3);
list.insertAtHead(2);
list.insertAtHead(1);
// 在鏈表尾部插入節(jié)點(diǎn)
list.insertAtTail(4);
list.insertAtTail(5);
// 在指定節(jié)點(diǎn)之后插入新節(jié)點(diǎn)
ListNode node = list.head.next; // 節(jié)點(diǎn)值為2
list.insertAfter(node, 6);
}
}
以上代碼將創(chuàng)建一個(gè)鏈表,并在頭部、尾部和指定節(jié)點(diǎn)之后插入新節(jié)點(diǎn)。運(yùn)行Main
類,輸出鏈表中的元素,將顯示插入操作的結(jié)果。