gpt4 book ai didi

java - 用于计算相邻重复项的递归函数

转载 作者:行者123 更新时间:2023-12-02 07:31:22 25 4
gpt4 key购买 nike

我希望递归函数检查当前节点中的值是否等于下一个节点中的值并递增 1,否则不递增并继续移动直到列表末尾。因此,对于 1, 2, 2, 3 , 1, 1 的列表。它应该返回 2 作为 2,2 是一个相邻的重复项,1, 1 是另一个相邻的重复项。

当当前值不等于下一个值时,我不知道如何处理错误情况。基本上不增加。

这是我到目前为止的代码...

int fn(Node l) {
if (l == null)
return 0;
else
return (l.value == l.next.value) ? (1 + fn(l.next)) : ;
}

最佳答案

在任何一种情况下都需要再次调用该函数,对于错误的情况,您不会将 1 添加到返回值,即

return (l.value == l.next.value) ? (1 + fn(l.next)) : fn(l.next);

您还应该首先检查l.next 是否不null。所以你可以重写这个函数...

int fn(Node l) {
if (l == null || l.next == null)
return 0;
return (l.value == l.next.value ? 1 : 0) + fn(l.next);
}

关于java - 用于计算相邻重复项的递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12875497/

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