剑指Offer——删除链表中重复的结点
2024-10-19 04:25:52
题目描述:
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表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;
}
};
最新文章
- [Linux]系统调用理解(3)
- CSS3 Gradient线性渐变
- 一步一步学swift之:自己写Api接口-PHP
- 。求推荐一个usb集线器的购买网址
- android自定义view属性
- Java SpringMVC实现国际化整合案例分析(i18n)
- jquerymobile知识点:动态ListView
- 5 kafka整合storm
- <;转载>;网页设计中的F式布局
- MyBatis框架原理(三)
- maven多个web模块进行合并
- java -jar启动java项目时,引用不同配置文件命令
- 搭建、访问ftp
- 【java】类的继承
- Android4.0以上版本Http请求的问题
- AsnycLocal与ThreadLocal
- JavaScript中变量的相互引用
- 每日英语:The Invasion of the Online Tutors
- php iframe 上传文件
- linux创建新用户及权限
热门文章
- 由于link顺序错误导致的undefined reference
- background-origin:规定 background-position 属性相对于什么位置来定位
- IIS网站本机可以访问,局域网其他机器无法访问
- ubuntu -- mf210v拨号流程
- SpringBoot配置使用jsp页面技术
- jQuery 中get 和post 方法传值注意事项
- Ubuntu Python 安装numpy SciPy、MatPlotLib环境
- 使用AngularJS实现的前后端分离的数据交互过程
- ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务
- Linux命令在线中文手册