javascript - 使用js删除链表中的重复项
问题描述
我已经尝试过这段代码,但它没有正常工作。为什么?
我正在使用该集合来捕获唯一元素,然后检查我的集合中的元素:
this.removeDuplicates = function(head) {
// Write your code here
let prev = head
let current = head.next
let head1 = head
let mySet = new Set()
while (current) {
mySet.add(prev.data)
if (mySet.has(current.data)) {
prev.next = current.next
current = current.next.next;
continue;
}
prev = current;
current = current.next;
}
return head1
}
测试用例:
输入:1 2 2 3 3 4
输出:1 2 3 3 4
输出应该是:1 2 3 4
解决方案
this.removeDuplicates = function(head) {
//Write your code here
let prev = head
let current = head.next
let head1 = head
let mySet = new Set()
while (current) {
if(prev.data == current.data){
prev = current;
current = current.next;
continue;
}
mySet.add(prev.data)
if (mySet.has(current.data)) {
prev.next = current.next
current = current.next.next;
continue;
}
prev = current;
current = current.next;
}
return head1
}
推荐阅读
- python - 将变换矩阵应用于新的点集
- django - Django 使用 DEBUG = False 和 Nginx 在错误目录中查找媒体文件
- javascript - Visual Studio Code:在“props”之后键入点会导致它自动完成为“ImagePropTypes” - 为什么?
- android - 在 Android 中使用默认相机意图访问所有相机镜头
- c# - 如何在嵌套数组上使用 DateRange 查询 Elasticseach?
- javascript - Javascript 响应性
- c# - 有没有办法通过不同的条目过滤 DataTable?
- haskell - 基于REFLECTX的切换收缩和扩展
- solidity - 从合约B获取合约A地址
- python-3.x - 如何在pyqt中显示RGB图像