leetcode No83. Remove Duplicates from Sorted List

来源:互联网 发布:java date格式转换 编辑:程序博客网 时间:2024/05/18 03:54

Question:

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.

Algorithm:

见程序

Accepted Code:

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* deleteDuplicates(ListNode* head) {        if(head==NULL||head->next==NULL)            return head;        ListNode* p=head;            //前        while(p!=NULL&&p->next!=NULL)        {           ListNode *q=p->next;           if(q->val==p->val)           {               p->next=q->next;               delete q;           }           else            {               p=p->next;           }        }        return head;    }};

20170309更新
class Solution {public:    ListNode* deleteDuplicates(ListNode* head) {        ListNode* pNode=head;        while(pNode!=NULL && pNode->next!=NULL)        {            if(pNode->val==pNode->next->val)            {                pNode->next=pNode->next->next;            }            else                pNode=pNode->next;        }        return head;    }};


0 0
原创粉丝点击