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

    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.

    Subscribe to see which companies asked this question

     
    这道题也是比较简单,虽然有的时候你有了一个思路,但是实现的过程中也许有很多小的细节,你不会注意到。
    就比如这道题刚开始我的思路是,用一个指针p来指向要判断的节点,而另一个指针q指向第二个与其不同的节点,那么就有q存不存在的问题,如果q不存在,我们就可以返回了。说明p后面没有和它不同的节点了。
    如果q存在,我们需要整体的后移一个,直至找到最后一个节点。说起来比较容易,但是,要判断谁是不是空,什么时候结束,需要理智和清晰的判断。
     
     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) return NULL;
    13         ListNode* p,*q;
    14         p=head;
    15         q=p->next;
    16         while(q!=NULL){
    17             while(q->val==p->val)
    18             {
    19                 if(q->next!=NULL) 
    20                     q=q->next;
    21                 else {
    22                     p->next=NULL;
    23                     return head;}
    24             }
    25             p->next=q;
    26             p=q;
    27             q=p->next;
    28             
    29         }
    30         
    31         return head;
    32         }
    33         
    34 };
  • 相关阅读:
    Scala与Mongodb实践1-----mongodbCRUD
    Scala实践14
    Scala实践13
    Scala实践12
    Scala实践11
    Scala实践10
    Scala实践9
    Scala实践6
    Scala实践8
    Oracle Object Type
  • 原文地址:https://www.cnblogs.com/LUO77/p/4974377.html
Copyright © 2011-2022 走看看