文章链接(链表理论基础):
代码随想录
203.移除链表元素
题目链接/文章讲解/视频讲解::代码随想录
常规思路:
第一瞬间想到的思路就是,先判断头节点是否为要删元素,单独写一段逻辑给头节点,直到找到不需要删除的头节点。然后写另一套逻辑给其余节点。
时间复杂度 ,空间复杂度
。
虚拟头节点:
通过设置虚拟头节点,可以使原链表的头节点被当作正常节点一样处理,实现一套逻辑处理整个链表。
时间复杂度 ,空间复杂度
。
707.设计链表
感觉是一道考察链表基础的题,解题关键在于理解链表结构和存储方式。在学校学习链表的时候老师一再强调,链表一定要画图,感觉链表的题画图解题确实事半功倍。
(代码太长就不附了。)
206.反转链表
也是画个图就很好解决的问题。遍历链表,遍历到每一个节点(curr)时,同时记录其前(pre)后(temp)的节点,然后将该节点指向的地址改为前面的节点(pre),再将遍历位置移动到下一个节点(temp)即可。
时间复杂度 ,空间复杂度
。