import java.util.*;
class Node{
Node next = null;
int data;
public Node(int data){
this.data = data;
}
}
public class MyLinkedList {
Node head = null;
public void addNode(int d){
Node newNode = new Node(d);
if(head == null){
head = newNode;
return;
}
Node tmp = head;
while(tmp.next != null){
tmp = tmp.next;
}
tmp.next = newNode;
}
public Boolean deleteNode(int index){
if(index<1||index>length()){
return false;
}
if(index == 1){
head = head.next;
return true;
}
int i = 2;
Node preNode = head;
Node curNode = preNode.next;
while(curNode != null){
if(i == index){
preNode.next = curNode.next;
return true;
}
preNode = curNode;
curNode = curNode.next;
i++;
}
return true;
}
public int length(){
int length = 0;
Node tmp = head;
while(tmp != null){
length++;
tmp = tmp.next;
}
return length;
}
public void printList(){
Node tmp = head;
while(tmp != null){
System.out.println(tmp.data);
tmp = tmp.next;
}
}
public static void main(String[] args){
MyLinkedList list = new MyLinkedList();
while(true){
Scanner s = new Scanner(System.in);
String cz = s.next();
if(cz.equals("add"))
{
int data = s.nextInt();
list.addNode(data);
list.printList();
}
else if(cz.equals("del"))
{
int index = s.nextInt();
list.deleteNode(index);
list.printList();
}
else if(cz.equals("len"))
{
System.out.println("Len= "+list.length());
}
}
}
}
测试数据:
add 1
1
add 5
1
5
add 9
1
5
9
del 2
1
9
del2
add 9
1
9
9
add 5
1
9
9
5
del 4
1
9
9
del 2
1
9
add 6
1
9
6
add 7
1
9
6
7
add 8
1
9
6
7
8
del 4
1
9
6
8
len
listLen= 4