【手绘漫画】图解LeetCode之删除排序链表中的重复元素(LeetCode 83题)

563 阅读1分钟

在这里插入图片描述

图解LeetCode刷题计划

1、写在前面

手绘漫画系列正式上线!!!"图解LeetCode刷题计划" 来了!!!

今天是第十三期,争取每天一期,最多两天一期,欢迎大家监督我。。。

在这里插入图片描述
我就是个鸽子。。。
在这里插入图片描述

2、题目

首先看一下题目,

在这里插入图片描述
嗯,删除节点,好,只要把下一个节点放在上一个节点的指针上就可以了!

好了,废话少说,开始了。

在这里插入图片描述
在这里插入图片描述

3、正文

好了,来一起看一下。

从头开始遍历每一个节点。

在这里插入图片描述
如果下一个节点的 val 和当前指针的 val 相同,那么,删除该节点。

那么什么时候结束呢?

两个条件:

  • 第一,当前指针是最后一个节点了;
  • 第二,当前节点是空的,即空链表;

在这里插入图片描述

4、代码

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        auto cur=head;
        while(cur&&cur->next){
            if(cur->next->val==cur->val){
                cur->next=cur->next->next;
            }
            else{
                cur=cur->next;
            }
        }
        
        return head;
    }
};

在这里插入图片描述
在这里插入图片描述

如果有幸帮到你,请帮我点个【赞】,给个【关注】!如果能顺带【评论】给个鼓励,我将不胜感激。

如果想要更多的资源,欢迎关注 @我是管小亮,文字强迫症MAX~