给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次
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是没有意义的