zoukankan      html  css  js  c++  java
  • Remove Duplicates from Sorted List leetcode

    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.

    题目意思为删除链表中反复的元素

    思路: 遍历链表。用两个指针。一个指向前一个。一个指向后一个,当两个所指向的值不相等时,同一时候往后移。当两个指向的值相等时,须要删除一个元素(后一个指针指向的值),然后后一个往后遍历

    代码例如以下:

    <span style="font-size:18px;">/**
     * 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) {
            
           if(head==NULL||head->next==NULL)
            return head; 
            
        ListNode *p,*q,*pur;
        
        p=head;
        
        q=p->next;
        while(q!=NULL)
        {
            if(p->val==q->val)
            {
                pur=q;
                q=q->next;
                p->next=q;
                delete pur;
            }
            else
            {
                p=q;
                q=q->next;
            }
        }
            
            return head;
            
        }
    };</span>


  • 相关阅读:
    吉他 摄影
    前端思考独处时间自我成长
    约束力
    js算法
    旅行计划
    生产者消费者问题
    Lock锁
    线程和进程
    什么是JUC
    GC日志分析和垃圾回收器的新展望
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7245395.html
Copyright © 2011-2022 走看看