203.移除链表元素
题目
移除链表中某个元素,只要使前一个节点指向该元素后一个节点的地址即可,c++中需要注意释放虚删除的节点。
code
该题采用虚拟节点,主要方便解决头结点即为需删除元素节点情况,而后就按顺序遍历各个节点并并更新cur节点位置,用cur->next != nullptr来判断已遍历完该链表。
复杂度
空间复杂度 O(1)
时间复杂度 O(n)
707.设计链表
题目
code
该题需要注意 链表结构体的代码, c++成员类的public和private相关知识。
206.反转链表
题目
code
翻转链表,重点就是定义一个null的pre虚拟节点来充当翻转后链表的末尾,然后就是用一个temp节点记录下一个要翻转的节点位置,翻转节点,再依次更新pre和cur的节点位置。cur != nullptr判断条件,最后cur在原链表的末尾nullptr处,而pre则位于翻转后链表的头结点,因此返回pre即可。
复杂度
空间复杂度 O(1)
时间复杂度 O(n)