题解 | #牛群排列去重#

牛群排列去重

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;
    }
};

全部评论

相关推荐

这算盘打的
程序员小白条:都这样的,都是潜规则,你自己说可以实习一年就行了,实习可以随便跑路的
点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务