我很难理解下面的这个方法如何删除链接列表中的重复项。调用此方法后,所有重复项都被成功删除。为什么头不是零?由于方法中的当前变量迭代到最后,头节点不会为空。此方法如何成功更新列表以摆脱重复项目?链接列表删除列表中的重复,参考混淆
static void removeDuplicate(node head)
{
// Hash to store seen values
HashSet<Integer> hs = new HashSet<>();
node current = head;
node prev = null;
while (current != null)
{
int curval = current.val;
// If current value is seen before
if (hs.contains(curval)) {
prev.next = current.next;
} else {
hs.add(curval);
prev = current;
}
current = current.next;
}
}
如果用户回答您的问题,请接受他的回答([接受答案:它是如何工作的?](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-工作))。如果不是,请说明还没有答案,这是StackOverflow非常重要的一部分,非常感谢。 – Zabuza