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的代码将是很有帮助的。预先谢谢你。
答案 0 :(得分:0)
LinkedList遍历:给定列表的开头(开始节点),您可以遍历整个列表。每个currentnode都将具有current.next可以访问的nextnode的信息。
在您的代码中,LinkedListNode'n'是列表中需要删除重复项的起始节点(头)