zoukankan      html  css  js  c++  java
  • LeetCode

    Remove Duplicates from Sorted List

    2013.12.26 21:36

    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.

    Solution:

      Removing the duplicates from a list requires two pointers ptr1 and ptr2. With ptr1 pointing to current node, and ptr2 next to ptr1, the operation can be done in only one-pass. Please see the code below.

      Time complexity is O(n), space complexity is O(1).

    Accepted code:

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     ListNode *deleteDuplicates(ListNode *head) {
    12         // Note: The Solution object is instantiated only once and is reused by each test case.
    13         if(head == nullptr){
    14             return head;
    15         }
    16         
    17         ListNode *ptr1, *ptr2;
    18 
    19         ptr1 = head;
    20         ptr2 = head->next;
    21         while(ptr2 != nullptr){
    22             if(ptr1->val == ptr2->val){
    23                 ptr1->next = ptr2->next;
    24                 delete ptr2;
    25                 ptr2 = ptr1->next;
    26             }else{
    27                 ptr1 = ptr1->next;
    28                 ptr2 = ptr1->next;
    29             }
    30         }
    31 
    32         return head;
    33     }
    34 };
  • 相关阅读:
    java中的成员变量和局部变量
    多线程实现输出当前时间,和猜数字游戏
    JDBC
    jQuery和原生JS的对比
    JavaScript有趣的知识点
    MySQL的数据类型
    行级元素和块级元素
    重定向和请求转发的区别
    JSP九大内置对象
    Python练习
  • 原文地址:https://www.cnblogs.com/zhuli19901106/p/3493123.html
Copyright © 2011-2022 走看看