代码实现:
public class RemoveElementsFromLinkedList {
public static void main(String[] args) {
ListNode head = new ListNode(1);
ListNode l1 = new ListNode(2);
ListNode l2 = new ListNode(2);
ListNode l3 = new ListNode(1);
head.next = l1;
l1.next = l2;
l2.next = l3;
ListNode temp = removeElements(head,2);
while (temp != null){
System.out.printf(temp.val + " ");
temp = temp.next;
}
}
public static ListNode removeElements(ListNode head, int val) {
if (head == null) return null;
ListNode realHead = head;
ListNode pre = null;
while (head != null){
if (pre == null && head.val == val){
realHead = head.next;
}else if (head.val == val){
pre.next = head.next;
}else {
pre = head;
}
head = head.next;
}
return realHead;
}
}