链表
数据存储在“ 节点 ”(Node) 中
class Node{
E e;
Node next;
}
优:动态,不需要处理容量
缺:无法随机访问
设置 dummy head :虚拟头结点
可以简化某些题目的解答
删除节点:
如果不考虑释放空间,可以简写 prev.next = prev.next.next
, 这样就将 指针指向下下个节点了
-
使用链表 实现栈
在head 端,入栈,出栈操作
-
使用链表 实现 队列
改进链表,添加尾节点 tail,head端出队,tail端入队
双向链表:
class Node{
E e;
Node next,prev;
}
每个节点有指向前后的两个指针
一样可以设置 dummyHead
循环链表:
环
尾节点指向首节点
dummyhead
链表的天然递归性:
递归:
把问题分解成 最基本的一个问题,
以及转化为更小的问题