代码比较简洁,注意判断是否相等,然后决定是next挪还是本体挪即可。

c++实现


class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        // write code here
        if(!head) return head;
        ListNode* L = head;
        while(L->next){
            if(L->val == L->next->val){   //和下一步如果相等,把next往后跳一个
                L->next = L->next->next;
            }else{
                L = L->next;              //和下一步不等,直接往后走即可
            }
        }
        return head;
    }
};