题目链接:203. 移除链表元素 - 力扣(Leetcode)
思路:思考移除的位置,我分为移除首元素和非首元素,然后这个题目是要求移除所有等于val值的元素,这里需要注意。
移除首元素:判断头是不是要删除的,是就头往下移,并释放结点,不是就跳出;
移除中间或者尾部元素:需要用到两个辅助指针,一个指向要删除的元素,一个指向要删除的前一个元素;当前元素要删除时,就将上一个结点next指针指向当前结点的next指针;
思路:定义一个链表的头结点,每次插入元素都是基于头结点去搜索,头节点不保存数据,只是起一个索引的作用,建立头节点可以方便将各种情况用一种方式处理,具体实现如下:
思路:反转链表可以理解为将原先链表的指针调换顺序,所以需要删除当前指针,然后再改变新的指向,这个时候可以先保存下一个结点的位置,然后删除当前结点的指向,再把当前结点的指针往前指,之后移动到下一个位置,重复操作;