算法
本题最直接的做法就是开一个$HashSet$,然后用它来进行去重,这样时间复杂度和空间复杂度都是$O(n)$。
Java 代码
class Solution {
public ListNode removeDuplicateNodes(ListNode head) {
if (head == null) return head;
Set<Integer> set = new HashSet();
ListNode cur = head;
set.add(cur.val);
while (cur.next != null) {
if (set.contains(cur.next.val)) cur.next = cur.next.next;
else {
set.add(cur.next.val);
cur = cur.next;
}
}
return head;
}
}