public void deleteDups(Node n) {
HashSet<Object> set = new HashSet<>();
Node previous = null;
while (n != null) {
if(set.contains(n.data)) {
previous.next = n.next;
} else {
set.add(n.data);
previous = n;
}
n = n.next;
}
}
我不知道为什么此功能可以删除重复项。
答案 0 :(得分:0)
如果数据集中已经存在,则在这里绕过当前节点。
if(set.contains(n.data)) {
previous.next = n.next;
}
在此语句中,previous.next = n.next;
被绕过当前节点,并且上一个节点的下一个指针直接引用当前节点的下一个指针。所以最后,linkedList将不会包含重复的值。