这道题很基础也很重要
重点就是设置超前节点
public ListNode removeElements(ListNode head, int val) {
//超前节点
ListNode pre = new ListNode(0);
pre.next = head;
ListNode res = pre;
while (pre!=null&&pre.next!=null)
{
if (pre.next.val==val)
{
pre.next = pre.next.next;
//注意这里要跳出循环,因为节点已经跳跃一位了,不需要再更新超前节点
continue;
}
pre = pre.next;
}
//这里不能返回head,因为head可能已经被孤立出来了
return res.next;
}