题解 | #牛群排列去重#

牛群排列去重

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

全部评论

相关推荐

03-07 13:32
门头沟学院 C++
未来可欺a:读研吧,这简历只适合学历高的,本科大概率只能干开发,你这个简历开发不匹配,算法和深度学习的话学历又不够
点赞 评论 收藏
分享
zygg:拼多多挂是不是过一两天就挂的呀
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务