【数据结构/链表】基础内容+leetcode刷题路线(持续更新)

Why:为什么要使用链表?

  1. 链表(Linked List)是最简单的线性的、动态数据结构。理解它是理解树结构、图结构的基础
  2. 更好的理解一些经典算法的实现,例如LRU缓存淘汰算法

What:链表包含哪些内容

链表的基础知识

  1. 底层的存储结构来讲,链表是通过指针将一组零散的内存块串联起来使用
  2. 常见的链表结构有三种,分别是:单链表、双链表、循环链表
  3. 操作时间复杂度与数组比较
    在这里插入图片描述

链表的求解技巧

  1. 理解指针:将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指针,或者反过来说,指针中存储了这个变量的内存地址,指向了这个变量,通过指针就能找到这个变量
  2. 声明虚拟头节点
ListNode* dummyHead = new ListNode(0); // 声明虚拟头节点
dummyHead->next = head; // 将虚拟头结点指向head

How:通过多次训练熟练掌握链表的使用

具体刷题路线

个人leetcode账号
当前刷题量364(131/199/33)

  1. 203.移除链表元素
  2. 707.设计链表
  3. 206.翻转链表
  4. 24.两两交换链表中的节点
  5. 19.删除链表的倒数第N个节点
  6. 07.链表相交
  7. 142.环形链表II
  8. 21.合并两个有序链表
  9. 23.合并K个升序链表
  10. 25.K个一组翻转链表
  11. 61.旋转链表
  12. 82.删除排序链表中的重复元素
  13. 83.删除排序链表中的重复元素
  14. 86.分隔链表
  15. 92.反转链表II
  16. 109.有序链表转换二叉搜索树
  17. 114.二叉树展开为链表
  18. 138.复制带随机指针的链表
  19. 141.环形链表
  20. 143.重排链表
  21. 146.LRU缓存机制
  22. 147.对链表进行插入排序
  23. 148.排序链表
  24. 160.相交链表
  25. 234.回文链表
  26. 237.删除链表中的节点
  27. 706.设计哈希映射
  28. 641.设计循环双端队列
  29. 622.设计循环队列
  30. 876.链表的中间节点
  31. 2058.找出临界点之间的最小和最大距离
  32. 2074.反转偶数长度组的节点
  33. 2095.删除链表的中间节点

参考资料

  1. leetocde题库
  2. 代碼随想录
  3. 《数据结构与算法之美》链表
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一二三o-0-O

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值