1.头插
2. 尾插
3. 获取长度
4. 包含元素
5. 移除元素
import sun.plugin.javascript.navig.Link;
class LinkedNode{
public int data = 0;
public LinkedNode next = null;
public LinkedNode(int data){
this.data = data;
}
}
public class Linkedlist{
private LinkedNode head = null;
public void addFirst(int elem){ //头插
LinkedNode node= new LinkedNode(elem);
if(this.head==null){
this.head = node;
return;
}
node.next = head;//想象为地址
this.head = node;
return;
}
public void addLast(int elem){ //尾插
LinkedNode node = new LinkedNode(elem);
if(this.head == null){
this.head = node;
return;
}
LinkedNode cur = this.head;
while(cur.next!=null){
cur = cur.next;
}
cur.next = node;
}
public int size(){ //获取长度
int size = 0;
for(LinkedNode cur = this.head;cur!=null;cur = cur.next){
size++;
}
return size;
}
public boolean contains(int toFind){ //包含元素
for(LinkedNode cur = this.head;cur!=null;cur=cur.next){
if(cur.data==toFind){
return true;
}
}
return false;
}
public void remove(int toRemove){ //移除元素
if(head == null){
return;
}
if(head.data == toRemove){
this.head = this.head.next;
return;
}
LinkedNode prev = searchPrev(toRemove);
LinkedNode nodeToMove = prev.next;
prev.next = nodeToMove.next;
}
}
Test
public class Test {
public static void main (String[]args){
testaddFirst();
testaddLast();
testContains();
testremove();
}
public static void testaddFirst(){
Linkedlist list = new Linkedlist();
list.addFirst(1);
list.addFirst(2);
list.addFirst(3);
list.addFirst(4);
list.display();
}
public static void testaddLast(){
Linkedlist list = new Linkedlist();
list.addLast(1);
list.addLast(2);
list.addLast(3);
list.addLast(4);
list.display();
}
public static void testContains(){
Linkedlist list = new Linkedlist();
list.addFirst(1);
list.addFirst(2);
list.addFirst(3);
list.addFirst(4);
boolean result =list.contains(3);
System.out.println(result);
}
public static void testremove(){
Linkedlist list = new Linkedlist();
list.addFirst(1);
list.addFirst(2);
list.addFirst(3);
list.addFirst(4);
list.remove(2);
list.display();
}
}