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 };
  • 相关阅读:
    jQuery动态效果
    10.嗖嗖移动业务大厅
    10.IDEAD 的xml中配置DTD
    浏览器缓存相关的Http头介绍:Expires,Cache-Control,Last-Modified,ETag
    nginx 重启
    fiddler 路由设置
    JavaScript Source Map 详解
    xdebug.var_display_max_data
    PHP输出当前进程所有变量 / 常量 / 模块 / 函数 / 类
    PHP中文件包含的路径问题
  • 原文地址:https://www.cnblogs.com/qqky/p/7113021.html
Copyright © 2011-2022 走看看