zoukankan      html  css  js  c++  java
  • 非递减单链表删除重复元素 转

        typedef struct _MyListNode  
        {  
            int nData;  
            struct _MyListNode * pNext;  
        } MyListNode, *PMyListNode;  
          
          
        class MyList  
        {  
        public:  
            MyList()  
            {  
                pHead = new MyListNode();  
                pHead->nData = 0;  
                pHead->pNext = NULL;  
                pTail = NULL;  
            }  
            ~MyList()  
            {  
                MyListNode * pTmp = pHead;  
                while (pTmp != NULL)  
                {  
                    pHead = pTmp->pNext;  
                    delete pTmp;  
                    pTmp = pHead;  
                }  
          
                pHead = NULL;  
            }  
          
            void Append(int num)  
            {  
                MyListNode * pTmp = new MyListNode();  
                pTmp->nData = num;  
                pTmp->pNext = NULL;  
          
                if (pTail != NULL)  
                {  
                    pTail->pNext = pTmp;  
                }  
                else  
                {  
                    pHead->pNext = pTmp;  
                }  
                pTail = pTmp;  
            }  
          
            void Print()  
            {  
                MyListNode * pTmp = pHead->pNext;  
                while (pTmp != NULL)  
                {  
                    cout << pTmp->nData << " ";  
                    pTmp = pTmp->pNext;  
                }  
                cout << endl;  
            }  
          
            void RemoveRepeat()  
            {  
                MyListNode * pNode = pHead->pNext;  
                while (pNode != NULL)  
                {  
                    MyListNode * pTmp = pNode->pNext;  
                    while (pTmp != NULL && pNode->nData == pTmp->nData)  
                    {  
                        pNode->pNext = pTmp->pNext;  
                        delete pTmp;  
                        pTmp = pNode->pNext;  
                    }  
          
                    pNode = pTmp;  
                }  
            }  
        private:  
            MyListNode * pHead;  
            MyListNode * pTail;  
          
        };  
          
          
        int main()  
        {  
            MyList lst;  
            lst.Append(7);  
            lst.Append(10);  
            lst.Append(10);  
            lst.Append(21);  
            lst.Append(30);  
            lst.Append(42);  
            lst.Append(42);  
            lst.Append(42);  
            lst.Append(51);  
            lst.Append(70);  
          
            lst.Print();  
          
            lst.RemoveRepeat();  
            lst.Print();  
          
            return 0;  
        } 

    http://blog.csdn.net/matrixcl/article/details/6853458

  • 相关阅读:
    Bzoj_1562 [NOI2009]变换序列
    Bzoj_1443 [JSOI2009]游戏Game
    Bzoj_3572 [Hnoi2014]世界树
    【python】按顺序排列组合输出字符串
    【python】通过LibreOffice把html文件转换成docx文件
    【python】判断一个地址是ipv4还是ipv6
    【python】判断一个字符串是否是数字
    【python】ImportError: cannot import name 'QWebView'
    【python】ModuleNotFoundError: No module named 'PyQt5.QtWebKitWidgets'
    【GNS3】Error 9: Unknown boot failure
  • 原文地址:https://www.cnblogs.com/androllen/p/2843689.html
Copyright © 2011-2022 走看看