为什么这个程序显示错误?

时间:2014-11-18 09:15:09

标签: java linked-list

我创建了一个删除双向链表中第一个元素的函数。但是声明head.getnext().getprevious()= null;中的错误 有人可以帮忙吗?

 public DNode deleteFirst()    // deletes the first element.
    {
          if( head== null) // for empty list
          {
              System.out.println("List already Empty!");
          }

            DNode temp = head;
            if (head.getNext()== null)   //if only one item
                tail = null;
            else
               head.getNext().getPrevious()= null;
            head = head.getNext();
            return temp;
              }
    }

2 个答案:

答案 0 :(得分:1)

=是一项作业,但您无法为方法分配值...

       head.getNext().getPrevious()= null;

getPrevious正在返回对该值的引用,您无法为该方法(或其后面的变量)赋值。

并非所有方法都返回托管变量,有些返回计算值,因此允许这种类型的赋值是没有意义的。

您需要提供更多能够实际取消引用类

中包含的字段的方法

答案 1 :(得分:0)

getPrevious方法的结果是下一个元素的上一个属性的副本,而不是指向表示该属性的字段的指针。如果您要更改属性,则需要一个setter和一个getter:head.getNext().setPrevious(null);