package test1;
//一个节点
public class Node {
//节点内容
int data;
//下一个节点;
Node next;
public Node(int data) {
this.data = data;
}
//为节点追回节点
public Node append(Node node) {
//当前节点
Node currentNode = this;
//循环向后找
while (true) {
//取出当前存储的下一个节点
Node nextNode = currentNode.next;
//如果下一个节点为null,当前节点已经是最后一个节点
if (nextNode == null) {
break;
}
//赋值下一个节点给当前节点
currentNode = nextNode;
}
//把需要追回的节点追加为找到的当前节点的下一个节点
currentNode.next = node;
//如果把自己返回回去就可以链式调用追加
return currentNode;
}
//获取下一个节点
public Node next() {
return this.next;
}
//获取节点中的数据
public int getData() {
return this.data;
}
//当前节点是否是最后一个节点
public boolean isLast(){
return next == null;
}
public static void main(String[] args) {
Node node1 = new Node(1);
Node node2 = new Node(2);
Node node3 = new Node(3);
//追加节点
node1.append(node2).append(node3).append(new Node(4));
//取出下下一个节点
System.out.println(node1.next().next().getData());//3
System.out.println(node1.next().next().next().getData());//4
System.out.println(node1.next().next().next().isLast());//true
System.out.println(node1.next().next().isLast());//true
}
}