刷题建议
刷题建议与debug
- 代码随想录目前基本都有了视频讲解,一定要先看视频,事半功倍。
- 写博客,将自己的感悟沉淀下来,不然会忘
- 大家提问的时候,记得要把问题描述清楚,自己在哪一步遇到了问题,做了哪些调试,而不要只是把代码甩出来,这样方便大家帮忙快速定位问题。
博客内容:(博客记录以及打卡格式)
今日学习文章链接和视频链接
Python菜鸟教程
203.移除链表元素
自己看到题目的第一想法
- 怎么遍历链表?忘了。。。
看完代码随想录之后的想法
- 可以特殊判断head或者设置虚拟头节点,重点掌握虚拟头节点,删除,增加节点都设置虚拟头节点,统一操作,不用刻意判断
- 要理解整个流程,边界判断cur与cur->next,不要背
自己实现过程中遇到哪些困难
相关题目
707.设计链表
自己看到题目的第一想法
- 要熟悉如何初始化链表
int get(int index)
cur指向dummy head,判断index是否合法,然后遍历index值,最后返回cur.val
void addAtHead(int val)
.新申请节点k,然后插入到 dummy_head与head中间void addAtTail(int val)
尾插法,cur从dummy_head开始遍历到cur.next = none,
cur指向尾节点,- …注意边界,带入边界值
看完代码随想录之后的想法
- head下标为0,
- 注意边界,带入边界值,head 0
- for i in range(0),不执行
- 要掌握单链表写法和双链表写法
206.反转链表
自己看到题目的第一想法
- 设置双指针,fast指针的next指向slow,然后双双+1,直到fast.next为NULL
- 超出时间限制,应该是指针变换引起的
看完代码随想录之后的想法
- 双指针法一个是要明确边界条件,cur指向None的时候,pre指向尾节点,反转结束
- 设置cur 在反转指针后,如何跳到下一个节点?设置temp节点存储
- pre最先指向None,cur指向head,开始反转
- 还需要掌握递归解法
自己实现过程中遇到哪些困难
- 想到了双指针,但没有想清楚边界条件和怎么实现的