/* 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;
}
}