我正在研究一种递归方法,该方法在二叉搜索树中输出最小的字符串,它在树中具有反向,但我觉得我完成这项任务的方式做得不好。
我有一个将根变量两次传递给递归重载方法的驱动程序方法。我觉得这不仅令人困惑,而且被认为是不好的做法。我通过它两次的原因是为了跟踪原始根变量,以便我可以将它传递给需要它的搜索方法。有没有其他方法可以做到这一点,还是我坚持下去?
相关代码:
public String smallRev() {
return smallRev(root,root); // <--- Bad practice?
}
private static String smallRev(StringNode temproot, StringNode root) {
String result;
if (temproot == null) {
result = "";
} else if (search(root, revString(temproot.getString()))) { //<-- Used here
result = temproot.getString();
} else {
String left = smallRev(temproot.getLeft(),root); // <-- Here
String right = smallRev(temproot.getRight(),root); // <-- & Here
if (!left.equals("")) {
result = left;
} else {
result = right;
}
}
return result;
}