重要的三个参数 first 记录开始位置,temp 记录最后位置, temp为了连接后边节点,first 用于最后节点形成环
package a;
public class CirListDemo {
public static void main(String[] args) {
CirList cirList = new CirList();
cirList.addNum(5);
cirList.show();
}
}
class CirList{
Node first ;
public void show() {
if (first == null) {
System.out.println("null");
return;
}
Node temp = first;
do{
System.out.println("temp = " + temp);//第一:先打印节点自身
temp= temp.next;//取下一个节点 ,先下一个,然后我们在判断。
}
while (temp != first); //=就是最后了,就退出了
}
public void addNum(int num) {
if (num <= 0) {
System.out.println("值不正确");
return;
}
Node temp = null;
for (int i = 1; i <= num; i++) {
Node node = new Node(i);
if (i == 1) {
first = node;
first.next = first;//一个属性指向一个地址
temp=first;
} else{
temp.next = node;//这个是第二个node了
temp= node;//其实就是指向最后的一个节点,用来添加。
node.next=first;
}
}
}
}
class Node{
int no;
Node next;
public Node(int no) {
this.no = no;
}
@Override
public String toString() {
return "Node{" +
"no=" + no +
'}';
}
}