链表是N个数据元素的有限序列,最经常使用的是链式表达,也叫线性链表或链表
链表中存储的数据元素也叫节点,一个节点存储的就是一条记录
每一个结点的结构包括数据域、指针域两部分算法
一:操做系统内的动态内存分配
二:LRU缓存淘汰算法缓存
// 1.链表插入 s.next = p.next p.next = s // 2.链表删除 p.next = p.next.next // 3.链表反转 while(curr){ next = curr.next curr.next = prev prev = curr curr = next } // 4 快慢指针 // 4.1 奇数个元素链表,快慢指针查询中间结点 while(fast && fast.next && fast.next.next){ fast = fast.next.next; slow = slow.next; } // 4.2 快慢指还能够用来判断链表是否有环,若是链表存在环,快指针和慢指针必定会在环内相遇,即 fast == slow 的状况必定会发生 // 5. 虚拟头:链表头可能发生改变时可以使用