剑指offer57 删除链表中重复的结点
Posted summerkiki
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer57 删除链表中重复的结点相关的知识,希望对你有一定的参考价值。
class Solution { public: ListNode* deleteDuplication(ListNode* pHead) { if(!pHead) return pHead; struct ListNode *pre=(struct ListNode *)malloc(sizeof(struct ListNode)); pre->next=pHead; ListNode *p1=pre; ListNode *p2=pre->next; while(p2&&p2->next) { if(p2->val==p2->next->val) { p2=p2->next; while(p2->next&&p2->val==p2->next->val) { p2=p2->next; } p1->next=p2->next; p2=p2->next; } else { p1=p1->next; p2=p2->next; } } return pre->next; } };
要注意判断指针是否存在,以及大于2个以上的连续结点重复的情况。
以上是关于剑指offer57 删除链表中重复的结点的主要内容,如果未能解决你的问题,请参考以下文章