【leetcode每日一题】82.Remove Duplicates from Sorted List II
2015-09-01 10:49
393 查看
题目:
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given
Given
解析:这道题是83题的变形,解法也与83题类似。83题解析请见文章:http://blog.csdn.net/kevin_zhai/article/details/47428283。本题解题步骤如下:
1)声明一个指针result,让这个指针指向头结点。
2)声明两个指针preNode和curNode,让preNode指向前节点,curNode指向当前节点。
3)判断preNode->next->val与curNode->next->val是否相等,如果相等,则继续向前遍历,直到不等为止。
4)如果preNode->next->val与curNode->next->val相等,则让preNode指向与preNode->next->val第一个不同的节点;否则,preNode指向下一个节点,继续遍历。
代码如下:
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given
1->2->3->3->4->4->5, return
1->2->5.
Given
1->1->1->2->3, return
2->3.
解析:这道题是83题的变形,解法也与83题类似。83题解析请见文章:http://blog.csdn.net/kevin_zhai/article/details/47428283。本题解题步骤如下:
1)声明一个指针result,让这个指针指向头结点。
2)声明两个指针preNode和curNode,让preNode指向前节点,curNode指向当前节点。
3)判断preNode->next->val与curNode->next->val是否相等,如果相等,则继续向前遍历,直到不等为止。
4)如果preNode->next->val与curNode->next->val相等,则让preNode指向与preNode->next->val第一个不同的节点;否则,preNode指向下一个节点,继续遍历。
代码如下:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *deleteDuplicates(ListNode *head) { if(head==NULL||head->next==NULL) return head; ListNode *result=new ListNode(0); result->next=head; ListNode *pre=result; ListNode *cur=head; while(cur!=NULL) { while(cur->next!=NULL&&pre->next->val==cur->next->val) { cur=cur->next; } if(pre->next==cur) pre=pre->next; else pre->next=cur->next; cur=cur->next; } return result->next; } };
相关文章推荐
- HTML 背景图片自适应
- Handler、Looper、Message的理解
- asp.net mvc 解决漏洞扫描的Error messages on page
- Hibenate错误汇总:java.lang.NoClassDefFoundError:
- SQL配置文件中常用的几种SQL语句
- fbd2fbs过采样转换问题
- Java——File
- uvaoj 1600 Patrol Robot 10603 Fill BFS
- nginx内置全局变量及含义
- 【循环列表】之魔术师的扑克牌问题
- python实现八皇后
- Tomcat linux、windows下设置内存及编码
- mySql 时间函数及转换
- dao、pojo、javabean
- 【Cocos2dx】动作监听
- ROS(3):xubuntu xface桌面安装ros&启动gui
- JNI编程指南-第六章 异常
- 面向连接与无连接的区别!
- django 1.8 官方文档翻译: 2-2-3 查找 API 参考
- iOS容易造成循引用的场景