我正在研究一种递归方法,该方法在二叉树搜索树中输出最小的字符串,该树在树中具有反向,但我觉得我完成此任务的方式做得不好。
我有一个驱动方法,它将根变量两次传递给递归重载方法。我觉得这不仅令人困惑,而且被认为是糟糕的做法。我通过它两次的原因是跟踪原始根变量,所以我可以将它传递给需要它的搜索方法。有没有其他方法可以做到这一点,还是我坚持下去?
相关代码:
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;
}