1. 单链表的删除
1.2 第一类删除类
- 01. 删除链表中的节点
- 2. 删除中间节点
- 3. 删除链表的节点
- 4. 链表的中间结点
- 5. 移除链表元素
- 6. 删除排序链表中的重复元素 II
- 7. 删除排序链表中的重复元素
- 8. 删除链表 M 个节点之后的 N 个节点
- 9. 从链表中删去总和值为零的连续节点
- 10. 移除重复节点
1.2.1 删除节点解题思路一
前提:已知P1,删除节点P2
tmp = P1->next;
P1->next = P1->next->next
free(tmp);
1.2.2 删除节点解题思路二
前提:已知P1,删除节点P1,即:删除已知节点的下一个节点
tmp = P2->next;
P2->data = P2->next->data
P2->next = tmp->next
free(tmp);
1.2.3 删除中间节点
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G83RH4LL-1625202948820)(/Users/user/Library/Application Support/typora-user-images/image-20210702094041393.png)]
即:红色指针每次走一步,蓝色指针每次走两步,即蓝色指针循环一次,红色走两步
- 01. 逆序打印不可变链表/
- 01. 反转链表
- 02. 从尾到头打印链表
- 03. 删除(读取)链表的倒数第 N 个结点
1.2. 链表的其他操作
- 复制带随机指针的链表
- 奇偶链表
- 循环有序列表的插入
- 链表中的下一个更大节点
- 二进制链表转整数
- 链表求和
- 复杂链表的复制