Remove Duplicates from Sorted List II

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.

分析: 为了便于管理头指针,创建一个新的头指针,利用几个新的变量来判断cur和prev的关系

/**
* 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) {
if (head ==NULL)
return head; ListNode* start = new ListNode();
start->next = head; ListNode* cur = head;
ListNode* prev = start;
while(cur){
while(cur->next && cur->next->val == prev->next->val)
cur = cur->next;
if(prev->next == cur)
prev = cur;
else
prev->next = cur->next;
cur = cur->next;
}
return start->next;
}
};

最新文章

  1. php操作mongodb
  2. safari浏览器添加书签的方法
  3. Hadoop源码之HDFS(1)--------通信方式
  4. Android UI性能优化实战, 识别View中的性能问题
  5. FPS
  6. ASP.NET Web API的安全管道
  7. qsort用法总结
  8. CSS3教程:pointer-events属性值详解 阻止穿透点击
  9. Building Xcode iOS projects and creating *.ipa file from the command line
  10. 关于PKCS5Padding与PKCS7Padding的区别
  11. wpa_supplicant使用笔记-wpa_cli iwconfig
  12. MySQL触发器之审计功能(转)
  13. CodeForces 670 A. Holidays(模拟)
  14. Spring Boot初探之log4j2配置
  15. Linux(CentOs6.3)网络配置
  16. python函数调用的四种方式 --基础重点
  17. 网络通信协议tcp,udp区别
  18. Redis基础、应用、第三方支持组件总结
  19. java中random的几个方法的使用Math.random()和random().
  20. oozie JAVA Client 编程提交作业

热门文章

  1. 华硕笔记本U盘启动系统/WinPE报错。Windows failed to start. A Recent hardware or software change might be the cause.
  2. ASP.NET MVC开发中常见异常及解决方案
  3. hive 删除分区数据
  4. 使用javascript生成的植物显示过程特效
  5. Css动画总结
  6. jQuery静态方法parseXML使用和源码分析
  7. iOS 多线程GCD的基本使用
  8. SharePoint Framework:下一代开发方式
  9. Java Serializable系列化与反系列化
  10. <<你的灯亮着吗?>>读书笔记