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