一,链表的节点

/*

 * 链结点,相当于是车厢

 */

public class Node {

//数据域

public long data;

//指针域

public Node next;

public Node(long value) {

this.data = value;

}

/**

* 显示方法

*/

public void display() {

System.out.print(data + " ");

}

}

二,简单链表

/*

 * 链表,相当于火车

 */

public class LinkList {

//头结点

private Node first;

public LinkList() {

first = null;

}

/**

* 插入一个结点,在头结点后进行插入

*/

public void insertFirst(long value) {

Node node = new Node(value);

node.next = first;

first = node;

}

/**

* 删除一个结点,在头结点后进行删除

*/

public Node deleteFirst() {

Node tmp = first;

first = tmp.next;

return tmp;

}

/**

* 显示方法

*/

public void display() {

Node current = first;

while(current != null) {

current.display();

current = current.next;

}

System.out.println();

}

/**

* 查找方法

*/

public Node find(long value) {

Node current = first;

while(current.data != value) {

if(current.next == null) {

return null;

}

current = current.next;

}

return current;

}

/**

* 删除方法,根据数据域来进行删除

*/

public Node delete(long value) {

Node current = first;

Node previous = first;

while(current.data != value) {

if(current.next == null) {

return null;

}

previous = current;

current = current.next;

}

if(current == first) {

first = first.next;

} else {

previous.next = current.next;

}

return current;

}

}


测试:

public class TestLinkList {

public static void main(String[] args) {

LinkList linkList = new LinkList();

linkList.insertFirst(34);

linkList.insertFirst(23);

linkList.insertFirst(12);

linkList.insertFirst(0);

linkList.insertFirst(-1);

// linkList.display();

//

// linkList.deleteFirst();

// linkList.display();

//

// Node node = linkList.find(23);

// node.display();

Node node1 = linkList.delete(0);

node1.display();

System.out.println();

linkList.display();

}

}