题目描述:

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

分析:

因为已经排好序了,所以如果相邻的数值一样的话,那么就跳过该数值,不过要记录前一结点的指针,将其next指向后一个没有重复的结点。

代码:

 /*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
*/
class Solution {
public:
ListNode* deleteDuplication(ListNode* pHead) {
if(pHead == NULL) return NULL;
ListNode* phead = NULL;
ListNode* p1 = pHead;
ListNode* p2 = NULL;
while(p1) {
if(p1->next) {
int val = p1->val;
if(val == p1->next->val) {
while(p1->next && p1->next->val == val) p1 = p1->next;
} else {
if(phead == NULL) phead = p2 = p1;
else {
p2->next = p1;
p2 = p1;
}
}
} else {
if(phead == NULL) phead = p2 = p1;
else {
p2->next = p1;
p2 = p1;
}
}
if(p1 == NULL) break;
p1 = p1->next;
}
if(p2) p2->next = NULL;
return phead;
}
};

最新文章

  1. [Linux]系统调用理解(3)
  2. CSS3 Gradient线性渐变
  3. 一步一步学swift之:自己写Api接口-PHP
  4. 。求推荐一个usb集线器的购买网址
  5. android自定义view属性
  6. Java SpringMVC实现国际化整合案例分析(i18n)
  7. jquerymobile知识点:动态ListView
  8. 5 kafka整合storm
  9. <转载>网页设计中的F式布局
  10. MyBatis框架原理(三)
  11. maven多个web模块进行合并
  12. java -jar启动java项目时,引用不同配置文件命令
  13. 搭建、访问ftp
  14. 【java】类的继承
  15. Android4.0以上版本Http请求的问题
  16. AsnycLocal与ThreadLocal
  17. JavaScript中变量的相互引用
  18. 每日英语:The Invasion of the Online Tutors
  19. php iframe 上传文件
  20. linux创建新用户及权限

热门文章

  1. 由于link顺序错误导致的undefined reference
  2. background-origin:规定 background-position 属性相对于什么位置来定位
  3. IIS网站本机可以访问,局域网其他机器无法访问
  4. ubuntu -- mf210v拨号流程
  5. SpringBoot配置使用jsp页面技术
  6. jQuery 中get 和post 方法传值注意事项
  7. Ubuntu Python 安装numpy SciPy、MatPlotLib环境
  8. 使用AngularJS实现的前后端分离的数据交互过程
  9. ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务
  10. Linux命令在线中文手册