leetcode—523

    xiaoxiao2022-07-14  150

    1.删除排序链表中的重复元素II

    给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重复出现的数字

    思路:快慢指针

    ListNode* deleteDuplicates(ListNode* head) { ListNode* res = new ListNode(0); ListNode* prev = res; prev -> next = head; ListNode* slow = nullptr; ListNode* fast = nullptr; if(head == nullptr || head -> next == nullptr) { return head; } slow = head; fast = head -> next; while(fast != nullptr) { if(slow -> val != fast -> val) { prev = slow; slow = slow -> next; fast = fast -> next; } else { while(fast) { if(slow -> val == fast -> val) { fast = fast -> next; } else { break; } } prev -> next = fast; slow = fast; if(fast) { fast = fast -> next; } } } return res -> next; }
    最新回复(0)