zoukankan      html  css  js  c++  java
  • [LeetCode] Remove Duplicates from Sorted List II

    Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

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

     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         if (head == NULL || head->next == NULL) return head;
    13         
    14         for (ListNode **prev = &head; (*prev) != NULL;) {
    15             int count = 0;
    16             ListNode *pter = *prev;
    17             while (pter != NULL && (pter->val) == (*prev)->val) {
    18                 pter = pter->next;
    19                 ++count;
    20             }
    21                 if (count == 1) {
    22                     prev = &((*prev)->next);
    23                 } else {
    24                     while ((*prev) != pter) {
    25                         ListNode *entry = *prev;
    26                         *prev = entry->next;
    27                         delete entry;
    28                     }
    29             }
    30         }
    31         
    32         return head;
    33     }
    34 };
  • 相关阅读:
    OpenLDAP与Apache
    OpenLDAP双主
    OpenLDAP主从
    LDAP与禅道
    LDAP与jenkins
    LDAP与Samba
    LDAP与SSH
    LDAP客户端
    LDAP与migrationtools 导入系统账号
    OpenLDAP与phpldapadmin的搭建
  • 原文地址:https://www.cnblogs.com/vincently/p/4059593.html
Copyright © 2011-2022 走看看