各位大哥帮忙看一下这个链表的删除函数好吗?谢谢!
各位大哥,我写了一个泛型的链表类,这是其中的删除节点的函数,编译是没有错的,但是运行的时候没什么反应,删除也不成功,请问,哪里有问题?
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 */
}