《剑指offer》:删除链表中重复的结点

来源:互联网 发布:java reentrantlock 编辑:程序博客网 时间:2024/06/05 07:05

题目描述

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

代码

主要判断开头的几位是否相同,若相同,则从第一个不同的开始处理

class Solution {public:    ListNode* deleteDuplication(ListNode* pHead)    {        if (pHead==NULL)            return NULL;        if (pHead->next == NULL)            return pHead;        if (pHead->next->val == pHead->val)        {            ListNode* current = pHead->next->next;            while (current != NULL && current->val == pHead->val)                current = current->next;            return deleteDuplication(current);        }        else        {            ListNode* current = pHead->next;            pHead->next = deleteDuplication(current);            return pHead;        }    }};
0 0
原创粉丝点击