0

我正在研究一种递归方法,该方法在二叉搜索树中输出最小的字符串,它在树中具有反向,但我觉得我完成这项任务的方式做得不好。

我有一个将根变量两次传递给递归重载方法的驱动程序方法。我觉得这不仅令人困惑,而且被认为是不好的做法。我通过它两次的原因是为了跟踪原始根变量,以便我可以将它传递给需要它的搜索方法。有没有其他方法可以做到这一点,还是我坚持下去?

相关代码:

    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;
    }
4

0 回答 0