203.移除链表元素
力扣题目链接
(opens new window)
题意:删除链表中等于给定值 val 的所有节点。
示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]
示例 2: 输入:head = [], val = 1 输出:[]
示例 3: 输入:head = [7,7,7,7], val = 7 输出:[]
移除链表中值为val的元素
思路:
加一个虚拟的头指针,头指针的next指向head元素
定义一个curr节点指向当前元素
定义一个pre指向当前元素的上一个元素
当curr不是null,就一直遍历
如果当前值==val,那么就将pre.next指向curr.next,,然后将curr后移,指向curr.next,pre不需要移动,因为curr的pre还是pre
移动后:
如果当前值不等于val,那么需要将pre/curr都后移,pre=curr,curr=curr.next
移动后:
最后返回虚拟节点的下一个节点