Skip to content

Latest commit

 

History

History
21 lines (17 loc) · 1.05 KB

File metadata and controls

21 lines (17 loc) · 1.05 KB

手撕链表

5个常见的链表操作。你只要把这几个操作都能写熟练,不熟就多写几遍,我保证你之后再也不会害怕写链表代码。

  • 单链表反转

  • 链表中环的检测

  • 两个有序的链表合并

  • 删除链表倒数第 n 个结点

  • 求链表的中间结点

  • 技巧一:理解指针或引用的含义 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指针,或者反过来说,指针中存储了这个变量的内存地址,指向了这个变量,通过指针就能找到这个变量

  • 技巧二:警惕指针丢失和内存泄漏

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

  • 技巧四:重点留意边界条件处理 常用来检查链表代码是否正确的边界条件有这样几个:

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