zoukankan      html  css  js  c++  java
  • 56、剑指offer--删除链表中重复的结点

    题目描述
    在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
     
    解题思路:从头遍历整个链表,如果当前结点和下一结点值相同,则应当删除。为了保证结点不断,需要保存pre结点,然后找到不相等的next,pre->next = next;注意删除的是头结点的情况,单独处理。
     1 /*
     2 struct ListNode {
     3     int val;
     4     struct ListNode *next;
     5     ListNode(int x) :
     6         val(x), next(NULL) {
     7     }
     8 };
     9 */
    10 class Solution {
    11 public:
    12     ListNode* deleteDuplication(ListNode* pHead)
    13     {
    14         if(pHead == NULL)
    15             return NULL;
    16         ListNode *pPreNode = NULL;
    17         ListNode *pNode = pHead;
    18         while(pNode != NULL)
    19         {
    20             ListNode *pNext = pNode->next;
    21             bool needDelete = false;
    22             if(pNext != NULL && pNext->val == pNode->val)
    23                 needDelete = true;
    24             if(!needDelete)//不等
    25             {
    26                 pPreNode = pNode;
    27                 pNode = pNode->next;
    28             }
    29             else//相等该删除
    30             {
    31                 int value = pNode->val;
    32                 ListNode *pToBeDel = pNode;
    33                 while(pToBeDel != NULL && pToBeDel->val == value)
    34                 {
    35                     pNext = pToBeDel->next;
    36                     delete pToBeDel;
    37                     pToBeDel = NULL;
    38                     pToBeDel = pNext;
    39                 }
    40                 if(pPreNode == NULL)//头结点被删除了
    41                     pHead = pNext;
    42                 else
    43                     pPreNode->next = pNext;
    44                 pNode = pNext;
    45  
    46             }
    47         }
    48         return pHead;
    49     }
    50 };
  • 相关阅读:
    Django复习
    AI-CBV写法
    CHENGDU3-Restful API 接口规范、django-rest-framework框架
    人工智能玩具制作
    POJ 3176 Cow Bowling
    HDU 2044 一只小蜜蜂
    HDU 4662 MU Puzzle
    POJ 3262 Protecting the Flowers
    POJ 1862 Stripies
    POJ 1017 Packets
  • 原文地址:https://www.cnblogs.com/qqky/p/7113021.html
Copyright © 2011-2022 走看看