各位大哥,我写了一个泛型的链表类,这是其中的删除节点的函数,编译是没有错的,但是运行的时候没什么反应,删除也不成功,请问,哪里有问题?
public void deleteNode(T data)
    {
       if (head != null)
       {    
                
        //如果链表只有一个元素
        if ((head == tail) && (head.m_infor == data))
        {
         head = null;
         tail = null;
        } 
        //如果要删除的为头节点
        else if (head.m_infor == data)
        {
          head = head.m_next;
        }
            
        else
        {
         CNode<T> preNode = head;
         CNode<T> tmpNode = preNode.m_next;
        
         while (tmpNode != null)
         {
         if (tmpNode.m_infor == data)
         {
         if (tmpNode == tail)//如果要删除的是尾节点
         {
         tail = preNode;
              }     
        
             else 
             {
                 preNode.m_next = tmpNode.m_next;
             }
                          
         }/* if */   
        
         else
         {
             preNode = tmpNode;
             tmpNode = tmpNode.m_next;
         }              
         }/* while */
        } 
       }/* if */
        
    }