/** * 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; } }