代码:
为了找到结果的head 可以在head前加一个dummy dummy->head 再顺序去重
/*** 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) {if(head==null)return head;// while(head.next!=null&&head.val==head.next.val){// while(n1!=null&&n1.next!=null&&n1.val==n1.next.val){// if(n1.next.next!=null){// head=n1.next.next;// }else{// return null;// }// n1=n1.next;// }// }if(head.next==null)return head;ListNode dummy = new ListNode(0,head);ListNode n1 = dummy;while(n1.next!=null&&n1.next.next!=null){ListNode n2 = n1.next;ListNode n3 = n1.next.next;if(n2.val==n3.val){while(n2.val==n3.val){n2 = n3;n3 = n3.next;if(n2==null||n3==null){n1.next=null;break;}else{n1.next = n3;} }}else{n1=n1.next;}}return dummy.next;}
}