看到main()中用了insert()后,链表好像还是空的啊,System.out.println(a.length());还是显示0啊

解决方案 »

  1.   

    我不会这样去写双链表,好像很麻烦的.如果调用Vector或者List等java类应该会简单很多的啊.
    并且也好调试很多的
      

  2.   

    你的程序我已经用debug看过了,错误在于:第一次调用insert时,首先判断length == 0,所以将首尾节点赋予被插入的对象d1;注意:第二次调用insert时,同样调用length(),length()再调用isEmpty(),由于首尾节点都指向刚才被插入的对象d1,当然Head == Tail,因此isEmpty()返回true,随之length()返回0,最后又一次将首尾节点赋予被插入的新的对象d2;由此下去,每次调用insert时,length都回返回0,因此又导致下一次Head 仍然等于 Tail。形成恶性循环。这类问题最好用debug观察对象的数据变化,方便修改