描述:给定一个有序链表,删除重复元素使得每个数值只出现一次。
输入:1->1->2->2->3
输出:1->2->3
思路:
1.设置两个工作指针pre=L,cur=L->next,cur迭代指向当前节点,pre迭代指向当前节点的前继节点。
2.当cur!=NULL时,比较pre->data与cur->data,若不等则令pre=cur,cur=cur->next.否则
3.令pre->next=cur->next,cur=pre->next.
class Solution{
public:
void unique(LinkList &L)
{
if(!L)return;
LinkList pre=L;
LinKList cur=L->next;
while(cur)
{
if(pre->data==cur->data)
{
pre->next=cur->next;
cur=pre->next;
}
else
{
pre=cur;
cur=cur->next;
}
}
}
};