建立一个虚拟头节点+双指针算法就可以实现了。
class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode t=new ListNode(0,head);
ListNode pre=t;
ListNode cur=head;
while(cur!=null){
if(cur.val==val){
pre.next=cur.next;
}else{
pre=cur;
}
cur=cur.next;
}
return t.next;
}
}