面试题 02.01. 移除重复节点 #
题目 #
编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。
思路 #
代码 #
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
class Solution {
public ListNode removeDuplicateNodes(ListNode head) {
if (head == null) return null;
HashSet<Integer> record = new HashSet<>();
ListNode ptr = head;
while (ptr.next != null) {
record.add(ptr.val);
if (record.contains(ptr.next.val)) ptr.next = ptr.next.next;
else ptr = ptr.next;
}
return head;
}
}