Remove Duplicates from Sorted List

Given a sorted linked list, delete all duplicates such that each element appear only once.

For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.

class Solution {
    //83. Remove Duplicates from Sorted List
public:
    ListNode* deleteDuplicates(ListNode* head) {
        if(head==NULL){
            return NULL;
        }
        ListNode* p=head;
        ListNode* q=head->next;

        if(q == NULL){
            //may head only
            return head;
        }
        while(q !=NULL){
            if(p->val==q->val){
                //two pointers p,q
                //p q
                //1,2,2,3
                ListNode* delNode=q;
                q=q->next;
                delete delNode;
                p->next=q;

            } else{
                q=q->next;
                p=p->next;
            }
        }
        return head;
    }
};

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容