zoukankan      html  css  js  c++  java
  • [LeetCode82]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.

    分类:Linked List

    代码:维护两个指针ptr,pre

     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)
    13             return head;
    14         if(head && !head->next)
    15             return head;
    16         ListNode *newHead = new ListNode(head->val - 1);
    17         newHead->next = head;
    18         ListNode *pre = newHead;
    19         ListNode *ptr = newHead;
    20         while(head)
    21         {
    22             if(pre->val != head->val && (!head->next || head->val != head->next->val))
    23             {
    24                 ptr->next = head;
    25                 ptr = ptr->next;
    26             }
    27             pre = head;
    28             head = head->next;
    29         }
    30         ptr->next = NULL;
    31         
    32         return newHead->next;
    33     }
    34 };
  • 相关阅读:
    男人要知道的40条忠告
    利用xtraBackup实现不停master服务做主从同步
    MY SQL 知识
    房价与阶级
    SQL Server数据库级别触发器
    mysql 5.7开启并行复制
    SQL Server 查出未提交事务(长事务)SQL
    开源数据集
    telnet
    Zend Studio使用综述
  • 原文地址:https://www.cnblogs.com/zhangbaochong/p/5479174.html
Copyright © 2011-2022 走看看