题解 | #删除有序链表中重复的元素-II#
删除有序链表中重复的元素-II
http://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024
思路
- 数组加哈希表
- 数组存值
- 哈希表筛选出不重复的值
- 最后遍历筛选出来的值生成链表
- 空间消耗大O(n),时间O(n)
unction deleteDuplicates( head ) {
let arr = []
while(head) {
arr.push(head.val)
head = head.next
}
let map = new Map()
for(let item of arr) {
map.set(item, (map.get(item) || 0 )+ 1)
}
let res = []
for(let [index, item] of map.entries()) {
if(item == 1) {
res.push(index)
}
}
let node = new ListNode(-1)
let pre = node
for(let item of res) {
node.next = new ListNode(item)
node = node.next
}
return pre.next
}