lintcode-删除排序链表中的重复数字II-113
来源:互联网 发布:ubuntu 17最快的源 编辑:程序博客网 时间:2024/06/05 05:48
给定一个排序链表,删除所有重复的元素只留下原链表中没有重复的元素。
样例
给出1->2->3->3->4->4->5->null,返回1->2->5->null
给出1->1->1->2->3->null,返回 2->3->null
<span style="font-size:14px;">/** * Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNode(int val) { * this->val = val; * this->next = NULL; * } * } */class Solution{public: map<int,int> check; //检验节点是否满足删除条件 ListNode * deleteDuplicates(ListNode *head) { if(!head) return NULL; ListNode *p=head; ListNode *q=NULL; //q负责指向p的前一个节点 ListNode *ret=head; while(p){ ++check[p->val]; //计数 p=p->next; } p=head; while(p){ if(check[p->val]>1){ //节点数大于一应该删除 ListNode *tmp; tmp=p; //负责指向将要被删除的节点 p=p->next; if(NULL==q){ //该节点是链表的头结点 ret=p; }else{ //非头结点 q->next=p; } free(tmp); }else{ q=p; p=p->next; } } return ret; }};</span>
0 0
- lintcode-删除排序链表中的重复数字II-113
- LintCode-删除排序链表中的重复数字 II
- lintcode-删除排序链表中的重复数字 II
- LintCode(M)删除排序链表中的重复数字 II
- lintcode,删除排序链表中的重复数字 II
- LintCode 删除排序链表中的重复数字 II
- 删除排序链表中的重复数字 II -LintCode
- 删除排序链表中的重复数字 II -LintCode
- [LintCode]113.删除排序链表中的重复数字 II
- LintCode删除排序链表中的重复数字 II
- [Lintcode]Remove Duplicates from Sorted List II 删除排序链表中的重复数字 II
- LintCode-删除排序数组中的重复数字 II
- lintcode-删除排序数组中的重复数字II-101
- LintCode 删除排序数组中的重复数字 II
- LintCode-删除排序数组中的重复数字 II
- lintcode删除排序数组中的重复数字 II
- LintCode(101)删除排序数组中的重复数字 II
- LintCode:删除排序数组中的重复数字 II
- 【1】基于ATmega 8A -PU 的蓝牙遥控电源插座设计——【3、制作以及 测试】
- HDU 5444 中序遍历
- 浅谈android中如何在两个Activity之间互传数据
- JAVA正则表达式校验密码实战实例
- jquery 跳出each循环
- lintcode-删除排序链表中的重复数字II-113
- 【Java多线程】-Condition使用(生产者-消费者)
- jsp四大作用域
- LeetCode-Single Number
- 记关于google地图坐标系的一些测试
- IOS定位服务的应用
- MFC去掉窗口右上方最大化最小化关闭按钮
- Session的生命周期
- JSP四大作用域