/* public class ListNode { int val; ListNode next = null;

ListNode(int val) {
    this.val = val;
}

} */

//全网最差的解题代码,大家凑合看吧。 import java.util.ArrayList; import java.util.LinkedList; import java.util.List;

public class Solution { public ListNode deleteDuplication(ListNode pHead) { if(pHead == null) return null; if(pHead.next == null) return pHead;

	List<Integer> list = new LinkedList<>();
	List<Integer> list1 = new ArrayList<>();//存重复的值
	ListNode temp1 = pHead;
	ListNode temp2 = pHead;
	while(temp1 != null) {
		if(list.isEmpty()) {
			list.add(temp1.val);
			temp1 = temp1.next;
			continue;
		}
		
		if(list.contains(temp1.val)) {
			temp2.next = temp1.next;
			list1.add(temp1.val);
			temp1 = temp1.next;
		}else {
			list.add(temp1.val);
			temp2 = temp2.next;
			temp1 = temp1.next;
		}
		
	}
	
	temp1 = pHead;
	temp2 = pHead;
	while(temp1 != null) {
		if(temp1==pHead && temp2==pHead) {
			if(list1.contains(temp1.val)) {
				pHead = pHead.next;
                temp1 = temp1.next;
				temp2 = temp2.next;
				continue;
			}else {
				temp1 = temp1.next;
			}
		}
		
        if(temp1 == null) break;
		if(list1.contains(temp1.val)) {
			temp2.next = temp1.next;
			temp1 = temp1.next;
		}else {
			temp2 = temp2.next;
			temp1 = temp1.next;
		}
	}
	
	return pHead;
}

}