面試題 02.01. 移除重複節點

ListNode* removeDuplicateNodes(ListNode* head)
{
	if (head == NULL || head->next == NULL) return head;
	set<int> si;
	ListNode* l1 = head, * l2 = head->next;
	si.insert(l1->val);
	while (l1->next)
	{
		if (si.count(l2->val))//存在過
		{
			l1->next = l2->next;
			delete(l2);
			l2 = l1->next;
		}
		else//第一次出現
		{
			si.insert(l2->val);//先插入 因爲要移動節點
			l1 = l2;
			l2 = l1->next;
		}
	}
	return head;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章