zoukankan      html  css  js  c++  java
  • 删除链表中重复的结点

     1 class Solution {
     2 public:
     3     ListNode* deleteDuplication(ListNode* pHead)
     4     {
     5      if(pHead == NULL || pHead->next == NULL)
     6          return pHead;
     7      ListNode *head = NULL, *pb = pHead, *pe = pHead->next, *pre = head;
     8      while(pb && pe)
     9          {
    10          while(pe && pb->val == pe->val)
    11              {
    12               pe = pe->next;
    13               if(!pe)
    14                   {
    15                   if(pre)
    16                   pre->next = NULL;
    17                   return head;
    18               }
    19               else if(pb->val != pe->val)
    20                   {
    21                      pb = pe;
    22                      pe = pe->next;
    23                    //  if(!pe)
    24                       //   return head;
    25                   }
    26              }
    27            if(pre != NULL)
    28                {
    29                 pre->next = pb;
    30                 pre = pb;
    31                 pb = pe;
    32                 if(pe)
    33                 pe =pe->next;
    34                }
    35          else 
    36          {
    37              head = pb;
    38              pre = head;
    39              pb = pe;
    40              if(pe)
    41              pe = pe->next;
    42              
    43          }
    44          
    45          }
    46         return head;
    47     }
    48 };
  • 相关阅读:
    Python学习笔记(三)
    Python学习笔记(二)
    GDUFE ACM1159
    GDUEFE ACM1003 练手
    GDUFE ACM1033
    GDUFE ACM1128
    GDUFE ACM1002
    EDUFE ACM1050
    GDUFE ACM1007
    GDUFE ACM1003
  • 原文地址:https://www.cnblogs.com/daocaorenblog/p/5454454.html
Copyright © 2011-2022 走看看