单链表插入,删除节点
public class 链表插入和删除节点 {
public static void main(String[] args) {
List<Node> list = new LinkedList<>();
for (int i = 0; i < 10; i++) {
Node node = new Node(i + 1);
list.add(node);
}
Node head = new Node(0);
head.next = null;
for (int i = 0; i < 10; i++) {
list.get(i).next = head.next;
head.next = list.get(i);
}
Node mid = new Node(11);
Node dummy = remove(head, 2);
while (dummy.next != null) {
dummy = dummy.next;
System.out.println(dummy.value);
}
}
public static Node insert(Node head, Node mid, int index) {
int curr = 1;
Node dummy = head;
while (curr <= index) {
head = head.next;
curr += 1;
}
mid.next = head.next;
head.next = mid;
return dummy;
}
public static Node remove(Node head, int x) {
int curr = 1;
Node dummy = head;
while (curr < x) {
head = head.next;
curr += 1;
}
head.next = head.next.next;
return dummy;
}
}