单链表就像是火车,火车头拉着第一节车厢,第一节车厢拉着第二节车厢…每一个节点都存着下一个节点的地址,并不像数组一样存在连续的内存地址空间里,节点的地址可以是不连续的。
单链表,其特点是链表的链接方向是单向的,对链表的访问要从头部(head)开始,然后依次通过next指针读取下一个节点。
1. 节点代码
class Node(var value: Int) {
var next: Node? = null // 指向下一个节点的指针
}
2. 基本操作
class Node(var value: Int) {
var next: Node? = null
fun append(node: Node?): Node {
var currentNode: Node = this
// 寻找最后一个节点,在最后一个节点追加新的节点
while (currentNode.next != null) {
currentNode = currentNode.next!!
}
currentNode.next = node
return this
}
operator fun next()