思路:简单的链表去重,用一个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; } };
评论
还没有任何评论,你来说两句吧!