Java方法问题

Java方法问题,java,Java,我有个问题。我得到了一个参数为val和Node next的链表节点。我还提供了一个函数调用join,它将把列表x的末尾连接到y 5 |->6 |->7 |->空 当我得到长度只有3。我能解释为什么不是堆栈溢出吗 为什么不是堆栈溢出 相反 因为在调用join()终止之前,列表仍然有一个结束。但是,如果你再打一次电话 为什么不是堆栈溢出 相反 因为在调用join()终止之前,列表仍然有一个结束。但是,如果您再次调用它…连接函数看起来不错,但是如果您使用这个调用它。连接(x,x)您可以构建某种圆 因此

我有个问题。我得到了一个参数为val和Node next的链表节点。我还提供了一个函数调用join,它将把列表x的末尾连接到y

5 |->6 |->7 |->空

当我得到长度只有3。我能解释为什么不是堆栈溢出吗

为什么不是堆栈溢出 相反

因为在调用
join()
终止之前,列表仍然有一个结束。但是,如果你再打一次电话

为什么不是堆栈溢出 相反


因为在调用
join()
终止之前,列表仍然有一个结束。但是,如果您再次调用它…

连接函数看起来不错,但是如果您使用
这个调用它。连接(x,x)
您可以构建某种圆


因此,如果在
this.join(x,x)
之后使用
x
执行递归操作,则可能会由于无休止的重复而导致某种堆栈溢出。

join函数看起来不错,但是如果使用
this.join(x,x)
调用它,则会构建某种循环。


因此,如果您在
this.join(x,x)
之后使用
x
执行递归操作,则可能会由于无休止的重复而导致某种堆栈溢出。

因为节点x只有一个实例,并且您在列表中建立了一个循环。您将永远无法到达x.next==null。您可能应该检查一些等式。

因为节点x只有一个实例,并且您在列表中建立了一个圆。您将永远无法到达x.next==null。您可能应该检查一下是否相等。

我们可以看看length()方法吗?我们可以看看length()方法吗?您好,谢谢您的回复。我再次检查,结果是溢出。嗨,谢谢你的回复。我再次检查,结果是溢出。嗨,谢谢。你说得对!问题出在我的代码上。嗨,谢谢。你说得对!问题出在我的代码上。嗨!谢谢你的回复,它确实变成了一个溢出。嗨!谢谢你的回复,它确实变成了一个溢出。
Node x = new Node(5, new Node(6, new Node(7, null))); 
this.join(x, x) 

    public void join(Node x, Node y){
   if(x.next==null){
      x.next = y;
   }else{
     join(x.next, y);
   }
}