Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
Example 1:
Input: 1->2->3->3->4->4->5 Output: 1->2->5
Example 2:
Input: 1->1->1->2->3 Output: 2->3
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode deleteDuplicates(ListNode head) { if(head == null) return null; ListNode dummy = new ListNode(0); ListNode prev = dummy; prev.next = head; ListNode cur = head; while(cur!=null && cur.next != null){//缺一不可 boolean dup = false; while(cur.next!=null &&cur.val == cur.next.val){//缺一不可 cur = cur.next; dup = true; } if(dup){ prev.next = cur.next; } else{ prev = cur; } cur = cur.next; } return dummy.next; } }