import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @param val int整型
* @return ListNode类
*/
public ListNode removeElements (ListNode head, int val) {
// write code here
ListNode dummyListNode=new ListNode(0);
dummyListNode.next=head;
ListNode currentListNode=dummyListNode;
while(currentListNode.next!=null) {
if(currentListNode.next.val==val) {
currentListNode.next=currentListNode.next.next;
}else {
currentListNode=currentListNode.next;
}
}
return dummyListNode.next;
}
}
创建一个虚拟头结点,以此来规避head本身的值与val相等的情况,创建一个current指针,指向当前的结点,如果current.next的值与val相等,那么就让current.next=current.next.next;如果不相等,就正常移动指针,让current=current.next,最后返回dummy.next,表示新的头结点



京公网安备 11010502036488号