数据结构与算法之美-链表(下)实战技巧笔记

链表(下):如何轻松写出正确的链表代码?

你必须极其努力,才能看起来毫不费力。这就是答案啦,无他唯手熟尔。接下来分享几个技巧,帮助我们在努力的路上披荆斩棘。

技巧一:理解指针或引用的含义
技巧二:警惕指针丢失和内存泄漏

  • 插入结点时,一定要注意操作的顺序
  • 删除链表结点时,也一定要记得手动释放内存空间

技巧三:利用哨兵简化实现难度

  • head 指针都会一直指向这个哨兵结点

技巧四:重点留意边界条件处理

  • 如果链表为空时,代码是否能正常工作?
  • 如果链表只包含一个结点时,代码是否能正常工作?
  • 如果链表只包含两个结点时,代码是否能正常工作?
  • 代码逻辑在处理头结点和尾结点的时候,是否能正常工作?

技巧五:举例画图,辅助思考
技巧六:多写多练,没有捷径

数组篇练习题总结

1 实现一个支持动态扩容的数组
2 实现一个大小固定的有序数组,支持动态增删改操作
3 实现两个有序数组合并为一个有序数组

链表篇练习题总结

1 给一个单链表,判断是否是回文数
2 实现单链表、循环链表、双向链表,支持增删操作
3 实现单链表反转
4 实现两个有序的链表合并为一个有序链表
5 实现求链表的中间结点
6 链表中环的检测
7 删除链表倒数第 n 个结点

发布了19 篇原创文章 · 获赞 1 · 访问量 231

猜你喜欢

转载自blog.csdn.net/helen920318/article/details/104857321