【刷题DAY04】24, 19,面试题 02.07., 142.md

24. 两两交换链表中的节点

题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/

0x1 看到题目的第一想法

0x2 自己实现过程中遇到哪些困难

0x3 今日学习的文章链接,或者视频链接

0x4 看完代码随想录之后的想法

  • 使用三指针
  • 创建一个虚拟节点,pre, cur, post三指针进行两两交换

0x5 今日收获,记录一下自己的学习时长

  • 链表技巧
    • 使用pre, cur, post三指针进行两两交换
  • 1h

19. 删除链表的倒数第 N 个结点

题目链接:https://leetcode.cn/problems/design-linked-list/

0x1 看到题目的第一想法

  • 快慢指针
    • 求倒数第几个,快指针就多走多少步

0x2 自己实现过程中遇到哪些困难

  • No

0x3 今日学习的文章链接,或者视频链接

0x4 看完代码随想录之后的想法

0x5 今日收获,记录一下自己的学习时长

  • 链表技巧
    • 快慢指针求链表倒数第N个节点
  • 30min

面试题 02.07. 链表相交

题目链接:https://leetcode.cn/problems/intersection-of-two-linked-lists-lcci
找两个链表的相交节点

0x1 看到题目的第一想法

  • 遍历链表AB的长度,求出长度的差值k,然后长的链表多走k步,然后长短一起走,判断是否到了相交的节点

0x2 自己实现过程中遇到哪些困难

  • No

0x3 今日学习的文章链接,或者视频链接

0x4 看完代码随想录之后的想法

  • 求出差值,先走到同步点,然后一起走,判断是否到相交点

0x5 今日收获,记录一下自己的学习时长

  • 求两条链表的相交节点。
    • 快慢指针
  • 20min

142. 环形链表 II

题目链接:https://leetcode.cn/problems/linked-list-cycle-ii/

0x1 看到题目的第一想法

  • 不懂

0x2 自己实现过程中遇到哪些困难

0x3 今日学习的文章链接,或者视频链接

0x4 看完代码随想录之后的想法

  • 判断是否有环
  • 寻找环的起点

0x5 今日收获,记录一下自己的学习时长

  • 判断是否有环
    • 快慢指针
      • slow每次走一步,fast每次走两步
      • 如果有环一定会相遇
  • 寻找环的起点

    • 在上一步,在他们相遇的节点,让slow回到起点,然后slow和fast一起走,然后下一次相遇就会在环的入口
  • 1h

待重点复习

24, 142

总结

  • 链表技巧
    • 两两交换链表元素
      • 三指针
    • 删除链表倒数第n个元素
      • 快慢指针
    • 链表相交节点
      • 快慢指针
    • 找环形链表的入口
      • 快慢指针
        • slow走一步 fast走两步 判断环
        • 起点和相遇点一起走 找入口