力扣链接:82.删除排序链表中的重复元素 II
难度:⭐⭐
解题关键词:指针
解题思路:使用一个假的头部指针,然后判断指针的后面和后面的后面是否都存在,都存在的话判断两个值是否相等,如果相等,就一直往后移动,过滤掉所有相等的节点
typescript
var deleteDuplicates = function (head) {
if (!head) {
return head;
}
// 假头部
const dummy = new ListNode(0, head);
let cur = dummy;
// 判断指针的后面和后面的后面是否都存在
while (cur.next && cur.next.next) {
// 如果两个值相等
if (cur.next.val === cur.next.next.val) {
// 一直往后移动,把相等的元素都过滤掉
const x = cur.next.val;
while (cur.next && cur.next.val === x) {
cur.next = cur.next.next;
}
} else {
cur = cur.next;
}
}
return dummy.next;
};