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 的代码将是什么,那将会很有帮助。先感谢您。
解决方案
LinkedList 遍历:给定列表的头部(起始节点),您可以遍历整个列表。每个 currentnode 都会有 nextnode 的信息,可以通过 current.next 访问。
在您的代码 LinkedListNode 'n' 是需要删除重复项的列表的起始节点(头)
推荐阅读
- string - Groovy 多行字符串保持新行和缩进
- python - 如何使用 if 语句在我的脚本中创建条件?
- python - 使用 **kwargs 看到的 mypy 中的不兼容类型
- mysql - 用基于两列的另一个字段替换 MySQL 中的一个字段
- delphi - Indy TIdIPMCastServer - 没有到主机的路由
- python - 沿张量的一个轴应用不同的函数
- json - Azure Speech-to-text REST API:使用 POST 请求创建数据集 - 发布到特定项目时出错
- github - Heroku 部署分支失败
- java - WebAuthn:无法在子域上登录
- c# - 计算小数