public ListNode deleteDuplicates (ListNode head) {
// 创建set集合,集合内元素不重复
HashSet<Integer> set = new HashSet<>();
// 被删除节点的前一个节点
ListNode preNode = null;
// 当前节点
ListNode curNode = head;
while (curNode != null) {
// 当前节点的值
int val = curNode.val;
// 查看set中是否包含,true->从链表中删除,false->添加到set中
if (set.contains(val)) {
preNode.next = curNode.next;
} else {
preNode = curNode;
set.add(val);
}
curNode = curNode.next;
}
return head;
}
京公网安备 11010502036488号