lintcode:Remove Duplicates from Sorted List II
2016-04-03 21:04
204 查看
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only
distinct numbers from the original list.
Have you met this question in a real interview?
Example
Given
Given
distinct numbers from the original list.
Have you met this question in a real interview?
Example
Given
1->2->3->3->4->4->5, return
1->2->5.
Given
1->1->1->2->3, return
2->3.
/** * 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) return head; ListNode dummyNode(0); dummyNode.next = head; ListNode *preNode = &dummyNode; ListNode *curNode = head; ListNode *nextNode = head->next; bool duplicateFound = false; while (nextNode) { if (nextNode->val == curNode->val) { nextNode = nextNode->next; duplicateFound = true; continue; } if (!duplicateFound) //根据duplated是否发现需要对preNode进行不同处理 { preNode = preNode->next; } else { preNode->next = nextNode; duplicateFound = false; } curNode = nextNode; nextNode = nextNode->next; } if (duplicateFound) preNode->next = NULL; return dummyNode.next; } };
相关文章推荐
- File新建时的参数设置
- 实验六———分析Linux内核创建一个新进程的过程
- 算法训练 大小写判断
- Android入门(十五)通知
- 【MFC】:MFC实现对控件字体属性的修改
- Android入门(十四)内容提供器-实现跨程序共享实例
- R语言笔记 attach()、detach()和with()
- [置顶] 深入理解JVM之一:Java内存结构
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- 记录一次并未读源码调试程序的经历
- 算法训练 比赛安排
- 算法训练 字符串编辑
- Android入门(十三)内容提供器
- tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)
- 草根创业5年的故事分享
- Linux学习笔记
- http头中的host字段详解
- Android部分常用控件
- 用canvas 的 lineto方法画对角线,但画出来的图形不对?
- 算法训练 最大值与最小值的计算