为什么我不能在Java中使用方法return作为指针?

时间:2019-09-25 13:56:01

标签: java

解决了,谢谢。我实际上在head.child的最后一个节点上添加了head.next,因此lastNode的下一次运行返回了不同的指针。

在下面的代码中,注释的代码给出了不同的结果,为什么?

我期待着同样的行为。

            Node p = lastNode(head.child); //Define a extra pointer
            p.next = head.next;
            if(head.next!=null) head.next.prev = p;
            //lastNode(head.child).next = head.next; // Not Working
            //head.next.prev = lastNode(head.child);

2 个答案:

答案 0 :(得分:0)

这与Java无关。在第一个示例中,您一次调用lastNode并将结果存储在p中。在第二个示例中,您两次调用lastNode,但是在第一次调用之后,将新的最后一个节点添加到列表中,因此第二次返回的值不同!

答案 1 :(得分:0)

更改lastNode(head.child)后对lastNode(head.child).next进行的第二次计算将为您提供新的最后一个节点。您必须保留指向旧的最后一个节点的指针,以便更新新的最后一个节点的prev