删除有序链表中重复的元素(NC25/考察次数Top62/难度简单)
Posted 码农指南
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除有序链表中重复的元素(NC25/考察次数Top62/难度简单)相关的知识,希望对你有一定的参考价值。
描述:
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次
例如:
给出的链表为1→1→2,返回1→2.
给出的链表为1→1→2→3→3,返回1→2→3.
示例1
输入:
{1,1,2}
返回值:
{1,2}
(题目来自牛客网)
用C++实现如下
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
class Solution {
public:
/**
*
* @param head ListNode类
* @return ListNode类
*/
ListNode* deleteDuplicates(ListNode* head) {
//思路,判断后面的val值是否与当前的val值相等,有点类似于选择法进行排序
if(head == NULL)
{
return NULL;
}
//注意找重复值这种问题,可以使用选择发进行遍历
for(ListNode* i=head; i != NULL; i=i->next) //确定当前的位置,从第一个开始,依次遍历
{
for(ListNode* j=i->next; j != NULL; j=j->next) //当前位置的下一个位置,依次往后遍历
{
if(j->val == i->val)
{
i->next = j->next; //两者相等则当前位置可以后移
}
}
}
return head;
}
};
纯手撕代码,如果觉得内容不错麻烦点个赞,后面陆续配上Top100算法题通俗易懂的讲解视频,可以花两个月时间完全掌握,进大厂不是梦,转行狗亲测!
以上是关于删除有序链表中重复的元素(NC25/考察次数Top62/难度简单)的主要内容,如果未能解决你的问题,请参考以下文章
删除有序链表中重复的元素-II(NC24/考察次数Top72/难度中等)
删除有序链表中重复的元素-II(NC24/考察次数Top72/难度中等)