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