gpt4 book ai didi

java - 找到链表的第二个最大键?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:12:44 26 4
gpt4 key购买 nike

请帮我修复我的代码。有些情况有效,但我相信像 [9,1,2] 这样的情况不会有效,因为在这种情况下第一个数字是最大的。我不确定如何在我的代码中解决这个问题。

public Key secondMaxKey () {
Node max = first;
Node max_2nd = first;

if (size() < 2) {
return null;
}

for (Node x = first; x != null;x = x.next) {

if (x.key.compareTo(max.key) == 1) {
max_2nd = max;
max = x;
} else if (x.key.compareTo(max_2nd.key) == 1) {
max_2nd = x;
}
}
return max_2nd.key;
}

最佳答案

在我看来,您首先要检查大小,然后再继续执行算法。在这里对你的稍作改动,因为我们使用前两个节点来设置 max 和 max_2(取决于它们的值)。然后我们像你一样进行。一探究竟。希望对你有帮助

public Key secondMaxKey () {
if(size() < 2){
return null;
}
Node max = null;
Node max_2 = null;

Node second = first.next;

if(first.key.compareTo(second.key) > 0){
max = first;
max_2 = second;
} else{
max = second;
max_2 = first;
}

for (Node x=second.next; x != null;x=x.next)
{
if (x.key.compareTo(max.key) > 0)
{
max_2=max;
max=x;
}
else if ((x.key.compareTo(max_2.key) > 0)
&& (x.key.compareTo(max.key) < 0))
{
max_2=x;
}
}
return max_2.key;
}

关于java - 找到链表的第二个最大键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41529026/

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