【牛客刷题 - 算法】NC25 删除有序链表中重复的元素 -I
个人主页:CSDN清风莫追
推荐一款面试、刷题神器牛客网:👉点击加入刷题大军👈
1.题目描述
描述删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次例如:给出的链表为,返回.给出的链表为,返回.
数据范围:链表长度满足 ,链表中任意节点的值满足 进阶:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)
2.算法设计思路
总体思路:遍历一次链表,过程中删除重复的元素。算法过程:
从头结点开始遍历,终止条件为当前结点的下一个结点为空。
对遍历到的结点,与后一个结点的值比较;若值相同,则删除后面那个结点。直到当前结点与后一个结点的值不同时,才继续遍历下一个结点。
结点的删除方式:将当前结点的下一个结点修改为当前结点后面第二个结点,并释放删除结点的内存。
复杂度:
时间复杂度:
空间复杂度:(指除链表本身外,额外用到的空间)
3.算法实现
注:这里并不是完整代码,而只是核心代码的模式
复制代码
4.运行结果
成功通过!
结束语:
今天的分享就到这里啦,快来加入刷题大军叭!👉点击开始刷题学习👈
感谢阅读
个人主页:CSDN清风莫追
版权声明: 本文为 InfoQ 作者【清风莫追】的原创文章。
原文链接:【http://xie.infoq.cn/article/8cb11ae6d05b3a766c60ed8c7】。文章转载请联系作者。
评论