java - 从链表中删除重复元素 - Java

标签 java linked-list

编辑

我决定使用 HashSet 来代替,因为它的复杂度是 O(N)。但是,我仍然有一个问题,它没有删除所有重复的数字,10 13 11 11 12 11 10 12 11。 它返回:10 13 11 12 10 11

static void removeDups(Node node) {
        HashSet<Integer> values = new HashSet<Integer>();
        Node previous = null;
        while(node != null) {
            if(values.contains(node.data)) 
                previous.next = node.next;
            else
                values.add(node.data);
                previous = node;

                node= node.next;

    }
    }

不相关

我试图从链接列表中删除重复的元素,但由于某种原因,它不会删除最后一个重复元素。例如,如果列表是 10,11,12,11,12,9,11,则返回:10,11,12,9,11。

     public static void removeDups1(Node head){
        if(head == head.next)
            head = head.next.next;
        Node fastptr =head;
        Node slowptr = head;
        while(slowptr.next != null && fastptr.next.next !=null) {
            if(slowptr.data == fastptr.data) {
                fastptr.next = fastptr.next.next;}

            slowptr = slowptr.next;
            fastptr = fastptr.next;

   }}

最佳答案

检查 fastptr.next.next == null 会提前退出循环。

关于java - 从链表中删除重复元素 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47047307/

相关文章:

java - 将屏幕截图附加到 TestNG 失败方法结果

java - 如何在android TextView(answerview)中显示分数而不是小数( double )

java - Discord JDA Bot 在调用扩展类时抛出 NullPointerException

c - 具有这种形式的链表/指针 list[0]

java - 如何遍历链表寻找前面的两个节点?

java - WTRN0062E : An illegal attempt to use multiple resources that have only one-phase capability has occurred within a global transaction

java - 使用来自 java 的 windows "net use"命令和 win32 api

c - 通过文本文件读入并显示链表

c - 如何在函数中使用链接列表

java - 按字母顺序将新对象插入到 Linkedlist(of Strings) 中,而不进行排序