代码随想录Day03|移除链表元素|设计链表|反转链表

移除链表元素

移除链表元素

解题思路

通过设置一个虚拟头指针,然后遍历整个链表,找到需要删除的内存移除就行,注意需要修改前一个链表的下一个指向

知识点

链表,指针,内存

心得

我没有用虚拟头指针,所以写的代码较为复杂。
【二刷】注意指针向下一个遍历的时候,如果那个值是我们要删除的值,就进行删除操作,否则继续往下遍历,不能删除完后在这次循环中再遍历一次。

设计链表

设计链表

解题思路

这是实现接口,考验基本功,一定要考虑头节点是否为空,以及指针是否不为空

知识点

链表的理解

心得

感觉基本功有点差,没有使用虚拟头指针,代码写的太复杂了,而且没有记录整个链表的大小
【二刷】在addatIndex函数中,注意一定要算好链表的长度,当我们在这个函数内调用完addAtHead和addAtTail后就不应该额外再加一次链表的长度

题目3

反转链表

解题思路

双指针,不断替换链表的next来进行反转。
我的思路是通过交换链表的值来进行反转,在循环中,头和尾的值进行互换,这样就不用考虑next会指向null的情况,但是代码会更为复杂

知识点

双指针

心得

双指针不够熟练,没有想到可以保存链表的下个节点
【二刷】注意头节点的next要设置为nullptr,否则反转后会产生循环链表的问题

posted @ 2024-06-24 23:33  不进育碧不改名  阅读(255)  评论(0编辑  收藏  举报