删除排序链表中的重复元素

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次

public:
    ListNode* deleteDuplicates(ListNode* head) {
         struct ListNode* p=head;
        while(p!=NULL&&p->next!=NULL)
        {
            if(p->val==p->next->val)
            p->next=p->next->next;
            else p=p->next;
        }
        return head;
    }
};

因为while循环里有

p->next->val
所以while条件中必须有p->next!=NULL这句 因为如果
p->next==NULL 那么
p->next->val是没有意义的
 
原文地址:https://www.cnblogs.com/lau1997/p/12707192.html