LintCode 113:Remove Duplicates from Sorted List II
来源:互联网 发布:太原科大网络 编辑:程序博客网 时间:2024/05/16 16:15
Description:
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
Note:
1.由于重复的结点全要删掉,所以使用一个int变量num记录当前判断是否有重复的结点,numNode指向这个结点。当出现重复结点时,若numNode不为空,则删除他的内容,若numNode为空,则只用删除当前重复节点(nextNode)。
2.当head为要删除的结点时,重置head指针为nextNode->next并删除nextNode结点。
3.当当前结点(nextNode)不等于num值时,有两种情况:
numNode为空,则置numNode=nextNode,更新num值,nextNode后移一格。
numNode不为空,则preNode,numNode,nextNode全都后移一格,更新num值。
Code:
class Solution {public: /* * @param head: head is the head of the linked list * @return: head of the linked list */ ListNode * deleteDuplicates(ListNode * head) { // write your code here if(!head) return nullptr; int num=head->val; ListNode* preNode=nullptr; ListNode* numNode=head; ListNode* nextNode=head->next; while(nextNode){ if(num==nextNode->val){ if(numNode){ delete numNode; numNode=nullptr; } if(preNode){ preNode->next=nextNode->next; delete nextNode; nextNode=preNode->next; } else{ head=nextNode->next; delete nextNode; nextNode=head; } } else{ if(numNode){ preNode=numNode; } numNode=nextNode; num=numNode->val; nextNode=nextNode->next; } } return head; }};
阅读全文
0 0
- lintcode:Remove Duplicates from Sorted List II
- Lintcode LinkedList 113 Remove Duplicates from Sorted List II
- LintCode 113:Remove Duplicates from Sorted List II
- LintCode - Remove Duplicates from Sorted List II Show result
- #113 Remove Duplicates from Sorted List II
- [Lintcode] Remove Duplicates from Sorted Array II
- LintCode - Remove Duplicates from Sorted List
- [Lintcode]Remove Duplicates from Sorted List
- LeetCode: Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- [Leetcode] Remove Duplicates from Sorted List II
- LeetCode: Remove Duplicates from Sorted List II
- [Leetcode] Remove Duplicates from Sorted List II
- [leetcode] Remove Duplicates from Sorted List II
- [LeetCode] Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- [leetcode] Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- 求一个点到另外两个点所在直线的投影
- Spring+SpringMVC+MyBatis深入学习及搭建
- 关于sublimeText3 设置格式化代码快捷键的问题
- opencv3 视频稳像
- js中对象的比较:只有地址相同才相等
- LintCode 113:Remove Duplicates from Sorted List II
- 解决tableview顶部留白一段的处理方法
- vue入门新建vue项目
- java解析json,只有我自己能看懂得乱代码
- Python 线程,用类实现多线程,join阻塞主线程
- 机器学习算法——KNN分类算法介绍以及Java实现
- CodeBlock显示 “can’t find compiler executable…” 解决办法
- jQuery 全选 全不选
- 深入理解Java虚拟机之对象的创建-内存布局-访问定位