//一个节点
public class Node {
// 节点内容
int data;
// 下一个节点
Node next;
public Node(int data){
this.data=data;
}
// 追加节点(为节点追回节点) 此方法是循环找到最后一个节点并添加一个节点
public Node append(Node node){
// this.next=node;
Node currentNode = this;
while(true){//如果有下一个节点
// 取出下一个节点
Node nextNode =currentNode.next;
// 如果当前节点是最后一个(也就是下一个节点为空)
if(nextNode == null){
break;
}
// 赋给当前节点
currentNode = nextNode;
}
currentNode.next = node;
return this;
}
// 显示所有节点
public void show(){
Node currentNode = this;
while(currentNode!=null){
System.out.print(currentNode.data+" ");
//取出下一个节点
currentNode =currentNode.next;
}
System.out.println();
}
// 删除下一个节点
public void removeNext(){
if(next == null){
throw new NullPointerException();
}
Node newNext = next.next;
this.next=newNext;
}
// 插入个节点作为当前节点的下一个节点
public void after(Node node){
// 取出一个节点作为下下个节点(也就是被插入而往后排的节点)
Node nnext = next;
// 把新节点作为当前节点的下一个节点(也就是插入的那个节点)
this.next = node;
// 再设置好节点
node.next = nnext;
// node.next = this.next;
// this.next = node;
}
// 获取下一个节点
public Node next(){
return this.next;
}
// 获取节点中的数据
public int getData(){
return this.data;
}
}