Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.
刪掉重復(fù)的節(jié)點(diǎn),這里考慮好特殊情況就好
使用3個(gè)指針按咒,指向已經(jīng)確定沒有重復(fù)的末尾朵纷,正在檢查的元素和找重復(fù)范圍的元素扛伍。
var deleteDuplicates = function(head) {
if (!head)
return head;
var dummy = new ListNode(0);
dummy.next = head;
var pre = dummy;
var now = head;
var exam = head.next;
while (exam) {
if (now.val === exam.val) {
while (exam && now.val === exam.val)
exam = exam.next;
pre.next = exam;
if (exam === null) break;
now = exam;
exam = exam.next;
} else {
now = now.next;
exam = exam.next;
pre = pre.next;
}
}
return dummy.next;
};