gpt4 book ai didi

java - 如何递归计算链表的平均值?

转载 作者:行者123 更新时间:2023-11-30 06:38:06 25 4
gpt4 key购买 nike

这是一个java代码,我应该使用递归将链表的偶数相加。这是我想出来的,但没有成功。我的java编译器在这个语句中有点进入无限循环:ave(i.getNext());

    public double ave (Node b)
{
Node i = head;
if (i == null)
return 0;

else
{
if (i.getData()%2==0)
{
sum = i.getData() + sum;
count++;
}
if (i.getNext() != null)
ave(i.getNext());

return sum/(double)count;
}

最佳答案

问题是您每次都将 i 分配给 headb 从未使用过!

你想要:

public double ave() {
return aveRec(head, 0, 0);
}

private double aveRec(Node n, long sum, int count) {
if (n == null) {
if (count == 0) {
// what to return if the linked list is empty?
return 0;
}
return (sum * 1D) / count;
}
if (n.getData() % 2 == 0) {
return aveRec(n.getNext(), sum + n.getData(), count + 1);
} else {
return aveRec(n.getNext(), sum, count);
}

}

关于java - 如何递归计算链表的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44864194/

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