我有一个由短 NTN 类定义的 n 叉树
public class NTN P {
public int value;
public Set<NTN> children;
}
我想找到这样一棵 n 叉树的最大值。假设它是一个简单的整数 n 叉树,其值为: [parent: 1 children: 2, 3, 4] [parent: 2 children: 5, 6] [parent: 4 children 7, 8, 9] 最大值只需 9。我不知道如何开始编写一个方法来找到原型的最大值:
public static int maximum(NTN t);
根据我的尝试:
public static int maximum(NTN t) {
int max = 0;
for (NTN e : t.children) {
if (e.value > max)
max = e.value;
}
return max;
}
上面的代码最多会返回 4,这意味着它只检查 t 的子代,而不是后续的一组子代。在这种情况下,它不会检查 4, [7,8,9] 和 2, [5,6] 的子集。如何更改它以便该方法找到所有后续子项的最大值?