在链表中查找重复的元素

时间:2018-09-09 03:59:14

标签: linked-list

void deleteDups(LinkedListNode n)
  HashSet<Integer> set = new HashSet<Integer>();
  LinkedListNode previous = null;  
  while(n!=null){
    if(set.contains(n.data)){
      previous.next = n.next;  
    }else {
      set.add(n.data);
      previous = n;
    }
    n = n.next;
  }
}

此代码段用于删除链接列表中的重复元素。

在破解编码面试中,我一直在研究链表概念。因为只有代码片段可用,所以我无法理解流程以及第一行中LinkedListNode n的实际来源。我可以理解他们正在将整个链接列表作为参数传递,如果有人可以告诉我该LinkedListNode的代码将是很有帮助的。预先谢谢你。

1 个答案:

答案 0 :(得分:0)

LinkedList遍历:给定列表的开头(开始节点),您可以遍历整个列表。每个currentnode都将具有current.next可以访问的nextnode的信息。

在您的代码中,LinkedListNode'n'是列表中需要删除重复项的起始节点(头)