import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /** * * @param head ListNode类 * @return ListNode类 */ public ListNode deleteDuplicates (ListNode head) { if (head == null) return null; ListNode cur = head; List<Integer> list = new ArrayList<>(); while (cur != null) { if (cur.next != null && cur.val == cur.next.val) { cur.next = cur.next.next; if (!list.contains(cur.val)) list.add(cur.val); continue; } cur = cur.next; } if (list.size() == 0) { return head; } cur = head; ListNode prev = cur; while (cur != null) { if (list.contains(head.val)) { head = head.next; cur = head; prev = cur; } else if (list.contains(cur.val)) { prev.next = cur.next; cur = cur.next; continue; } else { prev = cur; cur = cur.next; } } return head; } }