思路:简单的链表去重,用一个set保存已有数据,每一步检测当前val是否出现过,未出现过就入集合,出现过就删除它。
class Solution {
public:
ListNode* removeDuplicateNodes(ListNode* head) {
if (head == nullptr) return head;
unordered_set<int> s = {head->val};
ListNode* p = head;
while (p->next != nullptr) {
ListNode* cur = p->next;
if (!s.count(cur->val)) {
s.insert(cur->val);
p = p->next;
} else {
p->next = cur->next;
}
}
p->next = nullptr;
return head;
}
};