packagemars;//單連結清單添加,删除節點
public classListNode {privateNode head;publicListNode(){
head=null;
}//在連結清單前添加節點
public void addpre(intdvalue){
Node n=newNode(dvalue);if(head==null){
head=n;
}else{
n.next=head;
head=n;
}
}//在連結清單後添加節點
public void add(intdvalue){
Node n=newNode(dvalue);
Node current=head;while(current!=null){if(current.next==null){
current.next=n;return;
}
current=current.next;
}
}//删除值為dvalue的節點
public Node delete(intdvalue){
Node current=head;if(head.value==dvalue){
head=head.next;returncurrent;
}while(current.next!=null){if(current.next.value==dvalue){
Node temp=current.next;
current.next=temp.next;returntemp;
}
current=current.next;
}return null;
}//删除特定位置的節點
public Node deletepos(intpos){
Node current=head;int counter=0;if(pos==0){
head=head.next;returncurrent;
}while(current!=null){if((counter==(pos-1))&&(current.next!=null)){
Node temp=current.next;
current.next=temp.next;returntemp;
}
current=current.next;
counter++;
}return null;
}//單連結清單轉置
public voidreverse(){
Node a=head;if(a==null){return;
}
Node b=head.next;if(b==null){return;
}
Node c=head.next.next;
a.next=null;while(c!=null){
b.next=a;
a=b;
b=c;
c=c.next;
}
b.next=a;
head=b;
}//輸對外連結表資訊
public voidprint(){
Node current=head;while(current!=null){
System.out.println(current.value);
current=current.next;
}
}public static voidmain(String[] args){
ListNode l=newListNode();
l.addpre(3);
l.addpre(2);
l.addpre(1);
l.add(7);
l.add(8);
l.add(9);
l.delete(1);
l.deletepos(4);
l.reverse();
l.print();
}
}classNode{publicNode next;public intvalue;publicNode(){
next=null;
}public Node(intv){
value=v;
}
}