链表就和火车一样,一节一节的车厢形成节点,其中我们把车头当作first node,所有的操作全部由first node参与进行实现。
Node.java
package com.example.deer;
public class Node {
//数据域
public long data;
//节点域
public Node next;
public Node(long value){
this.data = value;
}
/**
* 显示方法
*/
public void display(){
System.out.print(data + " ");
}
}
LinkList.java
package com.example.deer;
public class LinkList {
//头节点
private Node first;
public LinkList(){
this.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 pervious = first;
while (current.data != value){
if(current.next == null){
return null;
}
pervious = current;
current = current.next;
}
if(current == first){
first = first.next;
}else{
pervious.next = current.next;
}
return current;
}
}