链表结构:
private static class Node{
int num;
Node next;
Node(int num,Node next){
this.next=next;
this.num=num;
}
}
初始化:
head不存数据
public singlelist(){
head=new Node(Integer.MAX_VALUE,head);
tail=head;
len=0;
}
遍历:
public void printall(){
Node node;
node=head.next;
while(node!=head){
System.out.println(node.num);
node=node.next;
}
}
插入
//头插法
public void insertHead(int num){
Node node=new Node(num,head.next);
head.next=node;
len++;
}
//尾插法
public void insertTail(int num){
Node node=new Node(num,head);
tail.next=node;
len++;
}
根据位置删除:
public int deleteOrder(int index){
int x=0;
Node node=head;
int num=0;
while (num!=index-1){
node=node.next;
num++;
}
x=node.num;
node.next=node.next.next;
//输出数字
return x;
}
根据数据删除:(删除第一个)
public int deleteCompare(int number){
int x=0;
Node node=head;
while (node.next.num!=number){
node=node.next;
x++;
}
node.next=node.next.next;
//输出位置
return x;
}
调用:
public static void main(String[] args) {
singlelist list = new singlelist();
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int item = in.nextInt();
list.add(item);
}
System.out.println(list.deleteOrder(1));
list.printall();
}
能力有限,希望多多指正。



