LeetCode-单链表

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. 链表的其他操作

  • 复制带随机指针的链表
  • 奇偶链表
  • 循环有序列表的插入
  • 链表中的下一个更大节点
  • 二进制链表转整数
  • 链表求和
  • 复杂链表的复制

你可能感兴趣的:(LeetCode练习,linux)