gpt4 book ai didi

java - 如何递归地获取链表的大小?

转载 作者:行者123 更新时间:2023-12-02 08:53:30 25 4
gpt4 key购买 nike

我正在尝试使用递归算法查找链表的大小。这是我到目前为止所拥有的:

  public int getCurrentSize()
{
int size = 0;

size = getCurrentSizeHelper(headRef);

return size;
}


public int getCurrentSizeHelper(BoxClass workingRef)
{
int sizeAtIndex = 0;

//If empty, size is zero
if (isEmpty())
{
return sizeAtIndex;
}

//If there is no next box, end recursion and increment size
if (workingRef.nextRef == null)
{
sizeAtIndex++;
}

//While there are next boxes, increment size and continue recursion
else
{
sizeAtIndex = getCurrentSizeHelper(workingRef.nextRef) + 1;
}

return sizeAtIndex;
}

我之前就已经完成了这个工作,但是,每次我尝试运行它时,都会出现堆栈溢出错误。如果您能深入了解这个问题,我们将不胜感激。

最佳答案

更好的紧凑版本(伪代码):

  public int getCurrentSizeHelper(BoxClass workingRef)
{
if (workingRef.isEmpty())
{
return 0;
}
return getCurrentSizeHelper(workingRef.nextRef) + 1;
}

这样就可以完成工作了。举个例子,算出来并检查一下自己。

关于java - 如何递归地获取链表的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60627924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com