题解 | #牛群排列去重#

牛群排列去重

https://www.nowcoder.com/practice/8cabda340ac6461984ef9a1ad66915e4


class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        // 这里因为算法时间要求,用的是暴力解法,用的是双指针。
        // 保持慢指针每移动一步,快指针从慢指针的下一个一直移动到链表的尾部
        ListNode* slow = head;
        ListNode* fast = head->next;
        ListNode* pre = head;
        ListNode* NewHead = new ListNode(0);
        NewHead->next = slow;
        while(slow){//控制慢指针
            pre = slow;  // 记录快指针的前一个
            fast = slow->next;//每次把快指针重置为慢指针的下一个
            while(fast){// 控制快指针
                if(slow->val == fast->val){
                    ListNode* temp = fast->next;
                    fast = nullptr;
                    pre->next = temp;// 前一个指针直接跳过当前指针,指向当前指针的下一个
                    fast = temp;
                }else {
                    pre = fast; // 移动指针
                    fast = fast->next; // 移动指针
                }
            }
            slow = slow->next; // 移动指针
        }
        return NewHead->next;
    }
};

全部评论

相关推荐

面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
10-09 22:05
666 C++
找到工作就狠狠玩CSGO:报联合国演讲,报电子烟设计与制造
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务