zoukankan      html  css  js  c++  java
  • 在O(1)复杂度内删除指定节点

    /*在O(1)复杂度内删除指定节点*/
    void deleteNode(LinkNode *& pHead, LinkNode * pDelNode)
    {
        if(pHead == NULL)
            cout<<"链表为空
    ";
        if(pDelNode == NULL)
            cout<<"所删除节点不存在
    ";
        if (pDelNode != pHead && pDelNode->_next != NULL)///中间节点
        {
            LinkNode * pTemp = pDelNode->_next;
            pDelNode->_value = pDelNode->_next->_value;
            pDelNode->_next = pDelNode->_next->_next;
            delete pTemp;
            pTemp = 0;
        }
        else if (pDelNode == pHead)////被删除的是头结点
        {
            pHead = pDelNode->_next;
            delete pDelNode;
        }
        else if(pDelNode->_next == NULL)
        {
            LinkNode * pTemp = pHead;
            while(pTemp->_next != pDelNode)
                pTemp = pTemp->_next;
            pTemp->_next = NULL;
            delete pDelNode;
        }
    }
  • 相关阅读:
    2
    网络对抗第四次实验恶意代码
    网络对抗第三次实验
    网络对抗第二次实验
    网络攻防第一次实验
    123
    数据结构
    第五次实验
    第二次实验
    Qt应用笔记
  • 原文地址:https://www.cnblogs.com/7ants/p/3297820.html
Copyright © 2011-2022 走看看