各位大哥帮忙看一下这个链表的删除函数好吗?谢谢!

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

}
...全文
82 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fatmamma 2005-09-09
  • 打赏
  • 举报
回复
无奈……
soulcy 2005-09-09
  • 打赏
  • 举报
回复
同意楼上的
不懂楼主为什么一定要自己写
believefym 2005-09-09
  • 打赏
  • 举报
回复
java里的Collection类肯定能满足你的需求的,干吗要自己写呢,多麻烦
弄个List不就ok了,直接remove
fox_blue 2005-09-09
  • 打赏
  • 举报
回复
if(head.m_infor == data)
if (tmpNode.m_infor == data)

如果我没说错的话,你的data是一个对象吧,java 1.5里面泛型可以这样判断对象相等吗? 看来我需要好好学习了
lancelobb 2005-09-09
  • 打赏
  • 举报
回复
请问你的head在哪里赋值?
fatmamma 2005-09-09
  • 打赏
  • 举报
回复
继续顶!
fatmamma 2005-09-09
  • 打赏
  • 举报
回复
我不信没人帮我!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧