java 数据结构与算法之单链表
创建一个节点类
public class Node {
int data;
//利用 next连接下面的节点
Node next;
Node(int data) {
this.data = data;
}
public void append(Node node) {
Node currentNode = this;
while (true) {
Node nextNdoe=currentNode.next;
if(nextNdoe==null){
break;
}
currentNode=nextNdoe;
}
currentNode.next=node;
}
public int getData () {
return this.data;
}
public Boolean iaLast(){
return next==null; //判断节点是否为空 使用 Node 对象对节点进行调用 即传入本身的next 进行判断
}
// 实现插入一个节点 插入到当前节点的后面
public void insert( Node node){
Node temp=node;
temp.next=this.next;
this.next=temp;
}
//删除下一个节点
public void delete(){
Node nextNode =next.next;
this.next=nextNode; //想要删除的那个节点就会被 垃圾回收机制回收
}
public void show(){
Node currentNode=this ;
while(true) {
if (currentNode != null) {
System.out.println(currentNode.getData());
}else{
break;
}
currentNode = currentNode.next;
}
}
}
创建一个链表类
public static void main(String[] args) {
Node n1=new Node(5); //创建了一个节点
Node n2=new Node(6); //创建了一个节点
Node n3=new Node(7); //创建了一个节点
Node n4=new Node(9); //创建了一个节点
Node n5=new Node(100); //创建了一个节点
n1.append(n2);
n1.append(n3);
n1.append(n4);
System.out.println(n1.iaLast());
System.out.println(n1.next.next.getData());
System.out.println(n3.iaLast());
n1.delete();
System.out.println(n1.next.next.getData()); //实现了删除第二个节点
System.out.println("====================");
n3.insert(n5);
n1.show();