首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一个小疑点,请大家帮忙

2012-01-29 
一个小问题,请大家帮忙voiddelete(intx){plinkFirstwhile((p.nextnode.data!x)&&(p.nextnode!null)){p

一个小问题,请大家帮忙
void   delete(int   x){
p=linkFirst;
while((p.nextnode.data   !=   x)   &&   (p.nextnode   !=   null)){
                        p   =   p.nextnode;
      }
if(p.nextnode   ==   null){
      System.out.printlnfou( "data   not   nd! ");
      }
else{
    p.nextnode   =   p.nextnode.nextnode;
                      }
                  }
想删除串列中的值等于x的节点,我将x赋值为串列中不存在的节点值,想让它输出
"data   not   nd! ",但是main函数报错,报错信息是:

Exception   in   thread   "main "   java.lang.NullPointerException
                at   LinkNode.delete(LinkList.java:66)
                at   LinkList.main(LinkList.java:87)

[解决办法]
你自己调试跟踪下看具体出错的位置这样才好分析为什么出错,也许逻辑有问题,或许linkFirst
根本就是null
[解决办法]
代码不是很规范,不过while这行明显有问题:

while((p.nextnode.data != x) && (p.nextnode != null))

应该是:

while(p.nextnode != null && p.nextnode.data != x)

利用&&的“短路”特性,如果p.nextnode为null,则不执行后半部分。

热点排行