struct ListNode* deleteDuplicates(struct ListNode* head) { if(head == NULL) { return head; } struct ListNode* p = head; while(p->next != NULL) { if(p->val == p->next->val) //相邻数据相等时 { p->next = p->next->next;//相等的数据的第一个的指针指向不相等的数据元素 } else { p = p->next; } } return head; }