/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
ListNode temp = new ListNode(0);
temp.next = head;
// 保存已经确定到的点
ListNode left = temp;
// 保存需要重重复判断到的点
ListNode right = temp.next;
while (right != null) {
int flag = 0;
// 标记重复的个数,并且移动right指针,直到找到下一个值
while (right.next != null && right.val == right.next.val){
flag++;
right = right.next;
}
// 有重复,则将left指向right的下一个
if(flag > 0) {
left.next = right.next;
right = right.next;
}else {
// 无重复,则不移动,从right处作为已经确定好的点,继续开始判断
left = right;
right = right.next;
}
}
return temp.next;
}
}
作者:chris-157
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/solution/82-shan-chu-pai-xu-lian-biao-zhong-de-zh-y4i1/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。