83. Remove Duplicates from Sorted List

来源:互联网 发布:mybatis sql打印 编辑:程序博客网 时间:2024/06/01 08:24

问题描述

Given a sorted linked list, delete all duplicates such that each element appear only once.

For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.

题目链接:


思路分析

给出一个已经排序了的链表,要求删除链表中的有重复值的结点。注意这里不用delete(),因为会删掉所有的有这个值的结点。

代码

class Solution {public:    ListNode* deleteDuplicates(ListNode* head) {        ListNode* cur = head;        while(cur){            while (cur->next && cur->val == cur->next->val){//current还有后继,而且后继的值与当前值相同。不用if是因为后面可能有多个相同元素                cur->next = cur->next->next;//更新指针域,跳过下一个重复了的元素            }            cur = cur->next;//跳到下一个结点        }        return head;    }};

时间复杂度:O(n)


反思

开始了链表题目,不太熟悉,多看一下相关的方法。

原创粉丝点击