Node* removeDuplicates(Node *head)
{
//Write your code here
if(head == nullptr)
return 0;
Node* it = head;
while (it!=nullptr)
{
if(it->next!=NULL)
{
if(it->data == it->next->data)
{
it->next = it->next->next;
}
else
{
it = it->next;
}
}else
{
it = it->next;
}
}
return head;
}
主要要点:
- 判定head是否为空,
- 当it不为空时,去除拥有相同data 的node,
- 对于it的移动有两种,第一种是如果与下一个不同,则it移动1,第二种是为了跳出while loop,即使it到达最后一个node, ,因为最后一个node 的next为nullptr