public class Main {
public static void main(String[] args){
ListNode nodeSta = new ListNode(0); //创建首节点
ListNode nextNode; //声明一个变量用来在移动过程中指向当前节点
nextNode=nodeSta; //指向首节点
//创建链表
for(int i=1;i<10;i++){
ListNode node = new ListNode(i); //生成新的节点
nextNode.next=node; //把新节点连起来
nextNode=nextNode.next; //当前节点往后移动
} //当for循环完成之后 nextNode指向最后一个节点,
nextNode=nodeSta; //重新赋值让它指向首节点
print(nextNode); //打印输出
}
static void print(ListNode listNoed){
//创建链表节点
while(listNoed!=null){
System.out.println("节点:"+listNoed.val);
listNoed=listNoed.next;
}
System.out.println();
}
}
class ListNode { //类名 :Java类就是一种自定义的数据结构
int val; //数据 :节点数据
ListNode next; //对象 :引用下一个节点对象。在Java中没有指针的概念,Java中的引用和C语言的指针类似
ListNode(int val){ //构造方法 :构造方法和类名相同
this.val=val; //把接收的参数赋值给当前类的val变量
}
}
描述过程
节点类先是new了一个首节点对象,又声明了一个节点类的变量,但没有实例化,用这个变量来当作指针一样指向首节点,注意:此时首节点和nextnode指向同一块内存。
然后创建链表的过程中是:循环中每一次都声明一个局部变量node并实例化当作新的节点,并且把nextNOde指向的首节点的成员变量next赋值为刚刚新建的node节点上即首节点连接下一个新生成的节点,然后指针指向下一个节点(刚刚新生成的那个) 。



