编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。
示例1:
输入:[1, 2, 3, 3, 2, 1]
输出:[1, 2, 3]
示例2:
输入:[1, 1, 1, 1, 2]
输出:[1, 2]
提示:
链表长度在[0, 20000]范围内。
链表元素在[0, 20000]范围内。
来源:力扣(LeetCode)
用空间换时间
ListNode* removeDuplicateNodes(ListNode* head) {
if(head==NULL) return head;
bool arry[20001]={0};
ListNode *p=head;
arry[p->val]|=1;
while(p->next)
{
ListNode *temp=p->next;
if(arry[temp->val])
{
p->next=temp->next;
delete temp;
}else
{
arry[temp->val]|=1;
p=p->next;
}
}
return head;
}