Node类:
public class Node {
// 数据项
public long data;
// 下个节点的引用
public Node next;
public Node() {
}
public Node(long data) {
this.data = data;
}
}
LinkedList类:
public class LinkedList {
// 根节点
private Node root;
public LinkedList() {
root = new Node();
}
/**
* 添加数据
* @param data
*/
public void add(long data) {
Node newNode = new Node(data);
Node current = root;
while (current.next != null) {
current = current.next;
}
current.next = newNode;
}
/**
* 删除数据
* @param data
* @return
*/
public boolean delete(long data) {
Node current = root;
while (current.next != null) {
if(current.next.data == data) {
current.next = current.next.next;
return true;
}
current = current.next;
}
return false;
}
/**
* 遍历链表,列出所有数据
* @return
*/
public String list() {
String str = "[ ";
Node current = root.next;
while (current != null) {
str += current.data + ", ";
current = current.next;
}
str = str.substring(0, str.length()-2);
str += " ]";
return str;
}
@Override
public String toString() {
return list();
}
}
测试类:
public class Test {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.add(100);
list.add(102);
list.add(89);
list.add(6);
System.out.println(list.delete(6));
System.out.println(list);
}
}