删除排序链表中的重复元素
存在一个按升序排列的链表,给你这个链表的头节点 head,请你删除所有重复的元素,使每个元素只出现一次,返回同样按升序排列的结果链表
js
var deleteDuplicates = function(head) {
// 用于记录是否前边遍历出现过
let arr = []
// 虚拟头节点,next指向head
let dummyHead = new ListNode()
dummyHead.next = head
// 定义一个前置指针(dummyHead用于return的时候返回头节点)
let pre = dummyHead
while(head) {
// 如果出现过,pre指向head的下一个节点(跳过该节点)
if(arr.includes(head.val)) {
pre.next = head.next
} else {
// 没出现过就继续往前走
pre = pre.next
}
// 存储已遍历的节点信息
arr.push(head.val)
// head一直往前走
head = head.next
}
return dummyHead.next
}