【刷题DAY03】203, 707, 206.md

203.移除链表元素

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

0x1 看到题目的第一想法

  • 链表的基础操作

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

  • 不会用python创建链表,怎么声明一个变量是链表

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

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

  • 设置一个虚拟节点dummy,来进行统一操作,不用单独考虑表头节点

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

  • 链表基础
  • 15min

707. 设计链表

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

0x1 看到题目的第一想法

  • 都是基础操作,一动手写就不太行了,这也不行那也不行

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

  • 不了解python的ini,要填什么,class和def是什么关系
    1
    2
    3
    4
    5
    6
    class Node():
    def __init__(self, x = 0):
    self.val = x
    self.next = None

    node = Node()

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

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

  • 写代码的时候可以把函数具体要实现的功能写在函数名上面,可以理清思路

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

  • 设置虚拟头节点会方便许多
  • 想清楚什么时候时候存前一个节点,什么时候是要存当前节点
    • 找到链表最后一个节点: 存前一个节点pre,while里判断pre.next,最后pre跳出循环是表尾
  • 2h

206. 反转链表

题目链接:https://leetcode.cn/problems/reverse-linked-list/
单链表的头节点 head ,请你反转链表,并返回反转后的链表

0x1 看到题目的第一想法

  • 头插法

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

  • 到底是一开始存dummy,还是dummy.next,糊涂里,里面的断开再连也糊涂

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

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

  • 使用双指针进行链表翻转

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

  • 使用双指针进行链表翻转

    • 定义一个pre,初始化为null,再定义一个cur
    • 当cur为None结束循环,每次循环中时,首先保存cur.next指针为tmp,以免cur断了;然后讲cur.next赋成pre,然后pre变为cur,cur变为tmp,接上去继续循环。
  • 30min

待重点复习

707, 206

总结

  • 链表基本操作
    • 增删查改
    • 原地翻转
      • 双指针