Remove Duplicates from Sorted List II
2016-04-17 23:46
281 查看
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.
For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.
/** * 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) { ListNode * pResultHead = NULL; ListNode * pResultCur = NULL; if(!head){ return NULL; } ListNode * pCur = head; int nCurVal = pCur->val; int nSameCount = 1; while(pCur->next){ if(pCur->next->val != nCurVal){ if(nSameCount == 1){ if(pResultCur == NULL){ pResultCur = pCur; pResultHead = pResultCur; }else{ pResultCur->next = pCur; pResultCur = pResultCur->next; } }else{ nSameCount = 1; } }else{ nSameCount++; } pCur = pCur->next; nCurVal = pCur->val; } if(nSameCount == 1){ if(pResultCur == NULL){ pResultCur = pCur; pResultHead = pResultCur; }else{ pResultCur->next = pCur; } }else{ if(pResultCur == NULL){ pResultHead = pResultCur; }else{ pResultCur->next = NULL; } } return pResultHead; } };
相关文章推荐
- 基于3D彩票Knn算法的遗漏模式挖掘
- 南京理工大学第八届程序设计大赛 H 谁才是最强战舰!
- LeetCode【1】Two Sum
- 成都Uber优步司机奖励政策(4月17日)
- es6函数的扩展
- 学习小结(上册第五章)
- 一张照片让你的安卓手机崩溃
- 实习心得《一》
- 强迫深究Java中的回调
- java之Socket模拟服务器端与客户端
- ListView的HeaderView和Footer
- 继续说一下2016里面的json功能(1)
- JS的事件处理
- ecshop 的密码是什么规则?
- mybatis的sqlsessionFactory
- ERROR 1217 (23000) at line 19: Cannot delete or update a parent row: a foreign key constraint fails
- STM32的时钟树深入详解
- 南京理工大学第八届程序设计大赛 F sequence
- 死锁---同步
- 软工大作业·历物语(一)