82. 删除排序链表中的重复元素 II

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
public ListNode deleteDuplicates(ListNode head) {                                        //自己的思路就是哪一个不重合 就申请一个新的结点并加入到ls2中 构成一个新的链表
	ListNode ls1 = new ListNode(Integer.MAX_VALUE);
		ListNode ls2 = new ListNode(Integer.MAX_VALUE);                    //这里的取值很危险 一不小心就报错 这里也是赌运气
        ListNode ls3 = ls2;
        ls1.next = head;
		while(ls1!=null) {
			while(ls1.next!=null&&ls1.val==ls1.next.val)
				ls1 = ls1.next;
			ls1 = ls1.next;
            if(ls1 == null)
                break;
			if(ls1.next==null||ls1.val != ls1.next.val){
				ls3.next = new ListNode(ls1.val);
                ls3 = ls3.next;    
            }
		}
		return ls2.next;
		
	}
}
原文地址:https://www.cnblogs.com/cznczai/p/11226461.html