NC24 删除有序链表中重复的元素-II

删除有序链表中重复的元素-II

https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024?tpId=188&&tqId=38568&rp=1&ru=/activity/oj&qru=/ta/job-code-high-week/question-ranking

alt

alt


class Solution {
public:
    /**
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    ListNode* deleteDuplicates(ListNode* head) {
        // write code here
        if(head == nullptr || head->next == nullptr)
            return head;
        ListNode* node = new ListNode(-1); //头结点
        ListNode* pre = node;  // pre 保存不同节点的前一个节点
        pre->next = head;
        while(head && head->next){   //比较当前节点与下一个节点
            if(head->val != head->next->val)   //如果不相同,向后移动
            {
                pre = head;
                head = head->next;
            }
            else{           //如果不相同
                int x = head->val;      //记录head的值
                while(head && head->val == x)    //然后比较
                {
                    head = head->next;
                }
                pre->next = head;
            }
        }
        return node->next;
    }
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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