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.

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode *deleteDuplicates(ListNode *head) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
            if(head==NULL||head->next==NULL)return head;
            ListNode* ptr1,*ptr2,*ptr3;
            ptr1=head->next;
            int p1=head->val;
            ptr2=head;
            ptr3=NULL;
            while(ptr1!=NULL){
                if(ptr1->val==p1){
                    ptr2=ptr3;
                    ptr1=ptr1->next;
                }
                else if(ptr2==NULL){
                    ptr3=NULL;
                    ptr2=ptr1;
                 head=ptr2;
                    ptr1=ptr1->next;
                    p1=ptr2->val;
                }
                else{
                    ptr3=ptr2;
                    ptr2->next=ptr1;
                    ptr2=ptr1;
                    ptr1=ptr1->next;
                    p1=ptr2->val;
                
                }
            }
            if(ptr2==NULL)return NULL;
            ptr2->next=NULL;
            return head;
        }
    };
    
  • 相关阅读:
    javascript之void0
    Sublime之OS X Command Line
    iOS之Monkey
    iOS之在成员函数中使用Block
    mac之javascriptcore
    国内成功码农的发展轨迹
    HTML之表格初步
    ClientSide JavaScript Timeline
    javascript正则表达式
    同源策略
  • 原文地址:https://www.cnblogs.com/superzrx/p/3269267.html
Copyright © 2011-2022 走看看