java单链表的增、删、查操作


public class Test {
private int size;//链表的长度
private Node head;//链表头结点
//链表的结点类
private class Node{
private int number;
private Node next;

public Node(int number){
this.number=number;
}
}

public Node getHead(){
return head;
}

public Test(){
size=0;
head=null;
}
//链表头结点添加结点
public void addHead(int number){
Node newHead=new Node(number);
if(head==null){
head=newHead;
}else{
newHead.next=head;
head=newHead;
}
size++;
}
//链表结点查找
public Node findNode(int number){
Node newNode=head;
while(newNode!=null){
if(newNode.number==number)return newNode;
newNode=newNode.next;
}
return null;
}
//链表结点的删除
public void deleteNode(int num){
if(size==0){
System.out.println("The list is null");
}else{
Node deleteNode=head;
Node earlyNode=head;
while(deleteNode.number!=num){
if(deleteNode!=null){
earlyNode=deleteNode;
deleteNode=earlyNode.next;
}
}
if(deleteNode==null){
System.out.println("The number that you want to delete is not exit!");
}else if(deleteNode==head){
head=head.next;
size--;
}else{
earlyNode.next=deleteNode.next;
size--;
}
}
}
//链表的便遍历
public void display(){
Node newHead=head;
while(newHead!=null){
System.out.println(newHead.number);
newHead=newHead.next;
}
}

public static void main(String args[]){
Test test=new Test();
test.addHead(1);
test.addHead(2);
test.addHead(3);
test.addHead(4);
System.out.println(test.getHead());
System.out.println("The number that you want to delete is+ "+test.findNode(2).number);
test.display();
test.deleteNode(2);
test.display();
}
}

 

 

输出结果:

Test$Node@6b97fd
The number that you want to delete is+ 2
4
3
2
1
4
3
1

posted @ 2018-09-07 15:32  从零开始的起风了  阅读(1171)  评论(0编辑  收藏  举报