/** * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* deleteDuplicates(struct ListNode* head ) { struct ListNode* p = head; if(head == NULL || head == NULL) return head; while(p->next != NULL) //最后一个结点前 { if(p->val == p->next->val) //相邻两值相等 { p->next = p->next->next; //删掉后值,指针后移 } else p = p->next; //相邻两值不等,指针后移 } return head; }