5090 {
5091 if(head == nullptr) {
5092 return head;
5093 }
5094 while(head != nullptr && head->next != nullptr && head->val == head->next->val) {
5095 const int val = head->val;
5096 while(head != nullptr && head->val == val) {
5097 head = head->next;
5098 }
5099 }
5100 ListNode *
ans = head;
5101 while(head != nullptr) {
5102 while(head->next != nullptr && head->next->next != nullptr && head->next->val == head->next->next->val) {
5103 const int val = head->next->val;
5104 ListNode *cursor = head->next;
5105 while(cursor != nullptr && cursor->val == val) {
5106 cursor = cursor->next;
5107 }
5108 head->next = cursor;
5109 }
5110 head = head->next;
5111 }
5113 }
vector< vector< int > > ans