Java中的数据中,一共有八种基本类型,都是值类型,其中有四个整数类型:int(4),short(2),long(8),byte(1),两种浮点型:float(4),double(8),一种表示字符的类型:char(2),一种用来逻辑判断的:boolean(1)。其他数据类型都为引用类型。
这两种不同的数据类型在内存中有着不同的存储方式。我在此引用Asicam博主的图片。
引用图片
下面回归正题,如何设计一个单链表?
单链表
接下来看如何添加结点:
添加结点
接下来看如何反转链表返回一个新的链表:
示例图
输入头结点直接翻转该链表
之前一直困扰我的坑:
1.ListNode next=head.next; 2.head.next=pre; --> next=pre 这是不对的
记住 除了基本数据类型其他的都是指针就行了。那么上式的解读就是:
1.把head.next 的指向 赋给next,假设head.next原本指向999。 2.修改head.next ,被赋予pre的指向。所以next还是指向原来的head.next的指向 : 999 ,head.next却变成了pre的指向,比如888.