82. Remove Duplicates from Sorted List II
Problem:
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given
Given
Given
1->2->3->3->4->4->5, return 1->2->5.Given
1->1->1->2->3, return 2->3.
Analysis:
Since it needs to remove all dup, so we need to have a pre pointer comparing to 82.
Solution:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode dummy = new ListNode(0); dummy.next = head; ListNode p = dummy; while (p.next != null && p.next.next != null) { if (p.next.val == p.next.next.val) { int dup = p.next.val; while (p.next != null && p.next.val == dup) { p.next = p.next.next; } } else { p = p.next; } } return dummy.next; } }
评论
发表评论