import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /** * * @param head ListNode类 * @return ListNode类 */ public ListNode deleteDuplicates (ListNode head) { // write code here if (head == null || head.next == null) { return head; } ListNode temp = head; ListNode lastNode = null; while (temp != null && temp.next != null) { boolean isNeedRemoveSelf = false; while (temp.next != null && temp.val == temp.next.val) { //重复删除 isNeedRemoveSelf = true; temp.next = temp.next.next; } if (isNeedRemoveSelf) { if (lastNode == null) { //删除头节点 head = head.next; temp = head; } else { lastNode.next = temp.next; temp = temp.next; } } else { lastNode = temp; temp = temp.next; } } return head; } }