113-删除排序链表中的重复数字 II

给定一个排序链表,删除所有重复的元素只留下原链表中没有重复的元素。

样例

给出 1->2->3->3->4->4->5->null,返回 1->2->5->null

给出 1->1->1->2->3->null,返回 2->3->null

标签

链表

思路

当前节点 current 的值若是与下一个节点的值相同,则向后遍历把与 current 相等的节点都找到,且跳过。若不相同,则将该节点放入已删除序列中。

code

/**
* Definition of ListNode
* class ListNode {
* public:
* int val;
* ListNode *next;
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
*/
class Solution{
public:
/**
* @param head: The first node of linked list.
* @return: head node
*/
ListNode * deleteDuplicates(ListNode *head) {
// write your code here
if(head == NULL || head->next == NULL) {
return head;
}
ListNode *newHead = new ListNode(0);
ListNode *next = newHead;
ListNode *current = head; while(current != NULL) {
if(current->next != NULL && current->val == current->next->val) {
while(current->next != NULL && current->val == current->next->val) {
current = current->next;
}
}
else {
next->next = current;
next = next->next;
}
current = current->next;
}
next->next = current; return newHead->next;
}
};

最新文章

  1. select、poll、epoll之间的区别总结[整理]
  2. block的传值简单示例仅供参考,大牛勿喷
  3. ED/EP系列4《圈存指令》
  4. GPS获取Location 获取所在地点的经纬度
  5. Java中文乱码问题研究(二)
  6. mac_Alfred_快捷设置
  7. 第一个Servlet程序及分析
  8. 安装Hadoop 2.7.3的过程中遇到的一些问题及解决方法。
  9. Southwestern Europe Regional Contest 2014 题解
  10. AppScan 工作原理
  11. Hibernate学习——API学习
  12. asp.net mvc 多文件上传
  13. 异常处理,MD5
  14. STM32应用实例七:与宇电设备实现AI-BUS通讯
  15. linux下安装mysql(ubuntu0.16.04.1)
  16. C++可变参数列表处理宏va_list、va_start、va_end的使用
  17. php7 安装swoole4.0.4
  18. Nodejs异步框架——async
  19. Android 实现在Activity中操作刷新另外一个Activity数据列表
  20. 基于聚类的“图像分割”(python)

热门文章

  1. Oracle数据库用户密码设为无限期
  2. iOS自动打开闪光灯
  3. Qt数据库编程1
  4. c++stl应用入门
  5. 单机安装hadoop+hive+presto
  6. 判断Map集合中是否存在某一个key
  7. Percona XtraDB Cluster 5.7安装配置
  8. php 无限参数方法
  9. ZooKeeper(1)-入门
  10. Python的scrapy之爬取51job网站的职位