给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。
示例 1:
输入:head = [1,2,3,3,4,4,5]
输出:[1,2,5]
示例 2:
输入:head = [1,1,1,2,3]
输出:[2,3]
可类比leetcode第83.删除排序链表中的重复元素,不过这道题相对来说复杂些
建立虚拟头节点,因为有可能头节点会被删除
var deleteDuplicates = function(head) {
let dummy = new ListNode();
dummy.next = head;
let current = dummy;
while (current.next && current.next.next) {
if (current.next.val == current.next.next.val) {
let value = current.next.val;
while (current.next && current.next.val == value) {
current.next = current.next.next;
}
} else {
current = current.next;
}
}
return dummy.next;
};