Ejemplo n.º 1
0
    public void RemoveNode(SVDoubleLinkedListNode <T> pNode)
    {
        if (pNode == null)
        {
            return;
        }

        if (pNode == Head)
        {
            Head = pNode.next;
        }

        if (pNode == Tail)
        {
            Tail = pNode.prev;
        }

        if (pNode.prev != null)
        {
            pNode.prev.next = pNode.next;
        }

        if (pNode.next != null)
        {
            pNode.next.prev = pNode.prev;
        }

        m_Count--;
        pNode.Reset();
        m_DoubleLinkNodePool.Recycle(pNode);
    }