本文共 1031 字,大约阅读时间需要 3 分钟。
两指针循环(感觉还是三指针好写一些):
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* deleteDuplication(ListNode* pHead) { if(pHead == NULL) return NULL; ListNode* root = NULL; ListNode* fa = pHead; ListNode* cld = fa->next; ListNode* last = NULL; while(cld!=NULL){ bool flag = false; while(cld!=NULL && fa->val == cld->val){ flag = true; delete fa; fa = cld; cld = cld->next; } if(flag){ delete fa; if(last != NULL) last->next = cld; fa = cld; if(cld!=NULL) cld = cld->next; continue; } if(root == NULL) root = fa; if(cld == NULL) break; last = fa; fa = cld; cld = cld->next; } if(root==NULL&&fa!=NULL) root = fa; return root; }};
转载地址:http://zfwji.baihongyu.com/