首页 > 解决方案 > 使用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

标签: javascriptdata-structures

解决方案


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
}

推荐阅读