给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2 输出: 1->2
示例 2:
输入: 1->1->2->3->3 输出: 1->2->3
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
当相邻两个元素相等时,p->next = p->next->next
class Solution { public: ListNode* deleteDuplicates(ListNode* head) { if(!head||!head->next) return head; ListNode* p = head; while(p->next) { if(p->val==p->next->val) { p->next = p->next->next; continue; } p = p->next; } return head; } };当相等时,head变成右边的元素 不相等时,head->next为右边的元素
class Solution { public: ListNode* deleteDuplicates(ListNode* head) { if(!head||!head->next) return head; if(head->val == head->next->val) head = deleteDuplicates(head->next); else head->next = deleteDuplicates(head->next); return head ; } };