码迷,mamicode.com
首页 > 编程语言 > 详细

83 删除排序链表中的重复元素(Easy)

时间:2020-06-21 14:15:24      阅读:52      评论:0      收藏:0      [点我收藏+]

标签:因此   跳过   code   solution   通过   lang   while   problems   ++   

  • 链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/

  • 思路

    • 因为输入的列表已排序,因此可以通过将当前结点的值与它之后的结点进行比较来确定它是否为重复结点。
    • 如果它是重复的,更改当前结点的 next 指针,以便它跳过下一个结点并直接指向下一个结点之后的结点。如果不是重复的,直接递增当前节点
  • Code

    class Solution {
    public:
        ListNode* deleteDuplicates(ListNode* head) {
            ListNode *cur = head;
            //cur!=nullptr:1->1->2,cur->next!=nullptr:1->1->2->3->3
            while (cur != nullptr && cur->next != nullptr) {
                if (cur->val == cur->next->val) {
                    cur->next = cur->next->next;
                }
                else {
                    cur = cur->next;
                }
            }
            return head;
        }
    };
    
  • 复杂度分析

    • 时间复杂度:\(O(n)\),其中 \(n\) 是列表中的结点数。列表中的每个结点都检查一次以确定它是否重复。
    • 空间复杂度:\(O(1)\)

83 删除排序链表中的重复元素(Easy)

标签:因此   跳过   code   solution   通过   lang   while   problems   ++   

原文地址:https://www.cnblogs.com/bky-hbq/p/13172027.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!