1. /**
    2. * Definition for singly-linked list.
    3. * public class ListNode {
    4. * int val;
    5. * ListNode next;
    6. * ListNode() {}
    7. * ListNode(int val) { this.val = val; }
    8. * ListNode(int val, ListNode next) { this.val = val; this.next = next; }
    9. * }
    10. */
    11. class Solution {
    12. public ListNode deleteDuplicates(ListNode head) {
    13. ListNode temp = new ListNode(0);
    14. temp.next = head;
    15. // 保存已经确定到的点
    16. ListNode left = temp;
    17. // 保存需要重重复判断到的点
    18. ListNode right = temp.next;
    19. while (right != null) {
    20. int flag = 0;
    21. // 标记重复的个数,并且移动right指针,直到找到下一个值
    22. while (right.next != null && right.val == right.next.val){
    23. flag++;
    24. right = right.next;
    25. }
    26. // 有重复,则将left指向right的下一个
    27. if(flag > 0) {
    28. left.next = right.next;
    29. right = right.next;
    30. }else {
    31. // 无重复,则不移动,从right处作为已经确定好的点,继续开始判断
    32. left = right;
    33. right = right.next;
    34. }
    35. }
    36. return temp.next;
    37. }
    38. }
    39. 作者:chris-157
    40. 链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/solution/82-shan-chu-pai-xu-lian-biao-zhong-de-zh-y4i1/
    41. 来源:力扣(LeetCode
    42. 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。