算法学习笔记:链表(下),如何写链表代码

编程

  1. 理解指针或引用的含义

将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指针,或者反过来说,指针中存储了这个变量的内存地址,指向了这个变量,通过指针就能找到这个变量。

  1. 警惕指针丢失和内存泄漏

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

  1. 利用哨兵简化实现难度

哨兵节点:在任何时候,不管链表是不是空,head指针都会一直指向这个哨兵节点。我们也把这种有哨兵节点的链表叫带头链表,相反,没有哨兵节点的链表就叫做不带头链表。

增加哨兵节点,在插入第一个节点和插入其他节点,删除最后一个节点和删除其他节点,都可以用相同的代码逻辑实现了。

实际上,很多代码实现都会用到哨兵,如:插入排序,归并排序,动态规划等。

  1. 重点留意边界条件处理

可以用以下几个条件来检查边界:

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

多注意边界情况,代码才足够健壮。

  1. 举例画图,辅助思考

脑容量不够的时候,就用举例发和画图法。

  1. 多写多练,没有捷径

    把常见的链表操作都自己多写几遍,出问题就一点一点调试,熟能生巧。

最后,建议思考时间不要太长,要先用自己能够想到的暴力方法实现试试,如果实在想不到,就在网上搜索答案,有的算法一般不是生想就能想到的,例如链表中环的检测。

以上是 算法学习笔记:链表(下),如何写链表代码 的全部内容, 来源链接: utcz.com/z/515385.html

回到顶部