p46 删除一个排序链表中的重复元素(leetcode 83)

一:解题思路

Time:O(n),Space:O(1)

二:完整代码示例 (C++版和Java版)

C++:

class Solution 
{
public:
    ListNode* deleteDuplicates(ListNode* head) 
    {
        if((head==NULL)||(head->next==NULL)) return head;

        ListNode* p = head;

        while ((p != NULL)&&(p->next!=NULL))
        {
            if (p->val == (p->next)->val)
            {
                ListNode* toDel = p->next;
                p->next = toDel->next;
            }
            else
            {
                p = p->next;
            }
        }

        return head;
    }
};

Java:

class Solution {
    public ListNode deleteDuplicates(ListNode head)
    {
        if(head==null||head.next==null) return head;
        ListNode p=head;
        
        while ((p!=null)&&(p.next!=null))
        {
            if(p.val==p.next.val)
            {
                ListNode toDel=p.next;
                p.next=toDel.next;
            }
            else
            {
                p=p.next;
            }
        }
        
        return head;
    }
}

 

posted @ 2020-03-17 14:40  repinkply  阅读(111)  评论(0)    收藏  举报