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

2020-04-21 14:18:43 浏览数 (1)

题目

首先看一下题目,

嗯,删除节点,好,只要把下一个节点放在上一个节点的指针上就可以了!

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

3、正文

好了,来一起看一下。

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

如果下一个节点的 val 和当前指针的 val 相同,那么,删除该节点。

那么什么时候结束呢?

两个条件:

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

4、代码

代码语言:javascript复制
/**
 * 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;
    }
};

0 人点赞