/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode dummy = new ListNode(0);//创建虚拟头节点
dummy.next =head;//将dummy.next指向head
ListNode prev = dummy; //创建prev节点 在比较时保留head节点前一个值 在比较开始前 prev节点和dummy都在head前面 所以将 dummy节点值付给prev
while(head != null ){//开始遍历链表 当头指针不为空时
if(head.val==val){ //如果head指针 指向的值等于val
prev.next = head.next; //让head前一个指针prev指向head的下一个 达到删除此时head所指值的效果
}
else{
prev=head; //如果不等于val值 后移prev指针
}
head = head.next; //head向后移动
}
return dummy.next; //跳出循环 返回链表
}
}