同樣使用二級指針,比我之前在牛客網(wǎng)上做這道題的方法簡便了好多。這又是一大進步。
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; }};新聞熱點
疑難解答