同样使用二级指针,比我之前在牛客网上做这道题的方法简便了好多。这又是一大进步。
class Solution {public: ListNode* deleteDuplicates(ListNode* head) { ListNode** pp = &head; bool deleted = false; while((*pp) != NULL){ if((*pp)->next == NULL){ if(deleted) *pp = NULL; break; } if((*pp)->val == (*pp)->next->val){ ListNode* tmp = (*pp)->next; (*pp)->next = tmp->next; delete tmp; deleted = true; } else if(deleted){ (*pp) = (*pp)->next; //删除重复元素的第一个 deleted = false; } else{ pp = &((*pp)->next); } } return head; }};新闻热点
疑难解答