/** * struct ListNode { * int val; * struct ListNode *next; * }; */ class Solution { public: /** * * @param head ListNode类 * @return ListNode类 */ ListNode* deleteDuplicates(ListNode* head) { // write code here // 双指针 快慢指针 if(head==nullptr) { return nullptr; } ListNode* slow = head; ListNode* fast = head; fast = fast->next; while(fast!=nullptr) { ListNode* tmp = fast->next; if(slow->val==fast->val) // 若出现重复 就跳过fast 且 fast指向tmp { slow->next = tmp; fast = tmp; } else { slow = fast; fast = tmp; } } return head; } };
快慢指针yyds