zoukankan      html  css  js  c++  java
  • 剑指offer55-删除链表中重复节点

    题目描述

    在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
        ListNode* deleteDuplication(ListNode* pHead)
        {
            //这里的重复节点与例题中类似,连续出现
            //if(pHead==NULL) return pHead;
            //考虑全链表重复情况
            ListNode*head=new ListNode(0);
            head->next=pHead;
            ListNode*p=head,*pre=head;
            while(p&&p->next)
            {
                
                if(p->val==p->next->val)
                {
                    while(p&&p->next&&p->val==p->next->val)
                    p=p->next;  
                 
                          pre->next=p->next;
                        //非删除情况
                      
                }else
                {
                   pre=p;
                }
                    p=p->next;
            }
            return head->next;
        }
  • 相关阅读:
    select入门学习
    tomcat入门及相关学习
    Tomcat&Servlet
    CPU排行榜
    CPU后字母代表的含义
    刷 BIOS
    Java的三个体系
    XML入门及案例
    BootStrap笔记
    第三节 DOM及案例 表格全选、表单验证
  • 原文地址:https://www.cnblogs.com/trouble-easy/p/12988138.html
Copyright © 2011-2022 走看看