删除单向链表中所有有重复值的节点。
class Solution { public: ListNode *deleteDuplicates(ListNode *head) { while(head != NULL && head->next != NULL && head->val == head->next->val) { while(head != NULL && head->next != NULL && head->val == head->next->val) { head = head->next; } if(head != NULL) { head = head->next; } } if(head == NULL || head->next == NULL)return head; ListNode * now = head->next; ListNode * node = head; while(now != NULL && now ->next != NULL){ while(now != NULL && now->next != NULL && now->val == now->next->val) { while(now != NULL && now->next != NULL && now->val == now->next->val) { now = now->next; } if(now != NULL) { now = now->next; } } node->next = now; node = node->next; if(node == NULL)break; now = node->next; } return head; } };