链表
链表是真正的动态数据结构,最简单的动态数据结构,数据存储在“结点”(Node)中优点:是真正的动态,不需要处理固定容量的问题。缺点:丧失了随机访问的能力
链表的增删改查
1 | /** |
链表的时间复杂度
添加操作 | addLast O(1) | addFirst O(1) | add(index,e) O(n/2)=O(n) | |
删除操作 | removeLast(e) O(n) | removeFirst(e) O(1) | remove(index) O(n/2)=O(n) | |
修改操作 | set(index,e) O(n) | |||
查找操作 | O(n) | 修改和查找都得遍历 |
链表与递归(删除链表元素)
链表删除元素的过程
删除链表中等于给定值 val 的所有节点(leecode)。
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
1 |
|
- 使用虚拟头节点
1 | public class Solution |
1 | public class Solution |
1 | public class Solution |