linkedlist从java中删除重复节点


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;
}
}

我不知道为什么这个功能可以消除重复。

如果集合中已经存在数据,则绕过当前节点。

if(set.contains(n.data)) {
previous.next = n.next;
}

在该语句中,previous.next = n.next;当前节点被绕过,上一个节点的下一个指针直接引用当前节点的下个指针。因此,linkedList最终不会包含重复的值。

相关内容

  • 没有找到相关文章

最新更新