删除有序链表中重复的元素(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/难度中等)

删除有序链表中重复的元素-II(NC24/考察次数Top72/难度中等)

牛客题霸 NC25 删除有序链表中重复的元素-I

合并有序链表(NC33/考察次数Top9/难度中等)

链表中的节点每K个一组翻转(NC50/考察次数Top12/难度中等)